40 Star 154 Fork 96

openEuler / bishengjdk-11

 / 详情

Overall task of backport

待办的
任务
创建于  
2022-11-24 09:48

Feature update:
Add Zero support for the 32-bit RISC-V architecture(只修改了platform.m4,os_linux.cpp文件)
https://github.com/openjdk/jdk/pull/8284

autoconf-config.sub是一个相当旧的版本,内部没有RISC-V支持。导致riscv64-linux-gnu in script config.sub fails
Fix a configure error in RISC-V cross build
https://github.com/openjdk/jdk/pull/8420

为RISC-V添加了部分JVMCI实现,以允许使用GraalVM本机映像RISC-V LLVM后端,该后端不使用JVMCI进行代码发射。(全新添加的特性)
[JVMCI] partially implement JVMCI for RISC-V
https://github.com/openjdk/jdk/pull/9587

riscv rvv目前实现的MaxReduceV、MinReduceV、AddReduceV节点可以通过调用共享函数来实现
8296515: RISC-V: Small refactoring for MaxReductionV/MinReductionV/AddReductionV node implementation
https://github.com/openjdk/jdk/pull/11036

Add experimental Foreign Function & Memory API support for RISC-V.
8293841: RISC-V: Implementation of Foreign Function & Memory API (Preview)
https://github.com/openjdk/jdk/pull/11003

Follow up JDK-8280152, this case also exists in riscv.
Reuse runtime call trampolines
https://github.com/openjdk/jdk/pull/10260

给BarrierSetAssembler::load_at GC API增加第二个临时寄存器
Add a second temporary register for BarrierSetAssembler::load_at
https://github.com/openjdk/jdk/pull/10261

和x86不同在RISC-V上使用相同的fclass指令,isFinite
Implement isFinite intrinsic for RISC-V
https://github.com/openjdk/jdk/pull/10391

为rv增加AndReductionV, OrReductionV, XorReductionV的支持(只存在vredsum_vs,只有Addreduce存在node)
RISC-V: Support ReductionV instructions for Vector API
https://github.com/openjdk/jdk/pull/10691

Use Zicboz/cbo.zero to zero-out memory on RISC-V(全新的extension,存疑)
https://github.com/openjdk/jdk/pull/10718

Support for Zicbop/prefetch instructions on RISC-V(需要支持UseZicbop)
https://github.com/openjdk/jdk/pull/10884

porting JEP 425 (Virtual Threads) to RISC-V.
https://github.com/openjdk/jdk/pull/10917

Bug fix
MSB在特殊情况下会污染高位,加载立即数[0x7FFF_8000_0000, 0x7FFF_FFFF_FFFF]结果会变为[0xFFFF_7FFF_8000_0000, 0xFFFF_7FFF_FFFF_FFFF]
Fix correctness issue of MacroAssembler::movptr
https://github.com/openjdk/jdk/pull/8913

riscv: small refactoring for add_memory_int32/64
https://github.com/openjdk/jdk/pull/9461
rscv的add_memory_int32/64只能将符号扩展的12位立即添加到内存中,因为它们直接调用addi/addiw汇编程序。(rv中w代表4个字节)

直接返回weak CAS在macroAssembler_riscv.cpp中的结果值给riscv.ad
RISC-V: Simplify weak CAS return value handling
https://github.com/openjdk/jdk/pull/10006

移除不必要的assert_cond(masm != NULL);
https://github.com/openjdk/jdk/pull/10079

目前,G1(和Shenandoah)在riscv上的oop_store_at中隐式使用x13。将x13改为tmp3形式的隐式调用。
RISC-V: Explicitly pass a third temp register to MacroAssembler::store_heap_oop
https://github.com/openjdk/jdk/pull/10137

get/put_native_u8 misses the case when address AND 7 is 6
https://github.com/openjdk/jdk/pull/10344

缺少了析构'java_lang_ref_Reference导致构建失败
https://github.com/openjdk/jdk/pull/10368

清理RISC-V后端中虚拟指令标记用法
Cleanup InstructionMark usages in the backend
https://github.com/openjdk/jdk/pull/10369

Issue https://bugs.openjdk.org/browse/JDK-8294160同步修改到riscv中
RISC-V: Misc crash dump improvements
https://github.com/openjdk/jdk/pull/10512

Fix PaX check on RISC-V
https://github.com/openjdk/jdk/pull/10690

LIRGenerator::do_LibmInrinsic的移植逻辑存在正确性问题
Fix LIRGenerator::do_LibmIntrinsic
https://github.com/openjdk/jdk/pull/10867

使NegVI可以匹配T_SHORT/T_BYTE(mr中的测试用例jdk11没有)
8296638: RISC-V: NegVI node emits wrong code when vector element basic type is T_BYTE/T_SHORT
https://github.com/openjdk/jdk/pull/11074

encounters the same assertion failure as JDK-8295414
8296771: RISC-V: C2: assert(false) failed: bad AD file
https://github.com/openjdk/jdk/pull/11085

SkipIfEqual 会从内存加载一个flag,但是在aarch64和risc-v中没有使用到value这个输入参数。
8296630: Fix SkipIfEqual on AArch64 and RISC-V
https://github.com/openjdk/jdk/pull/11076

修复MacroAssembler::en/decode_klass_not_null中kill usages of heapbase register 的情况
8296448: RISC-V: Fix temp usages of heapbase register killed by MacroAssembler::en/decode_klass_not_null
https://github.com/openjdk/jdk/pull/11010

vrsub_vx和vrsub_vi的操作数顺序与RVV1.0规范中的操作数顺序不同
8296447: RISC-V: Make the operands order of vrsub_vx/vrsub_vi consistent with RVV 1.0 spec
https://github.com/openjdk/jdk/pull/11009

count_bytecode(),histogram_bytecode() and histogram_bytecode_pair() 修改为使用x7作为临时寄存器
8296301: Interpreter(RISC-V): Implement -XX:+PrintBytecodeHistogram and -XX:+PrintBytecodePairHistogram options
https://github.com/openjdk/jdk/pull/11051

优化:

将一些小的宏汇编函数转移到关联的头文件,这样他们有机会内联。
8296916: RISC-V: Move some small macro-assembler functions to header file
https://github.com/openjdk/jdk/pull/11130

在目前的rscv端口实现中,fence.i的使用效率低下或冗余
riscv: remove fence.i used in user space
https://github.com/openjdk/jdk/pull/9770

更改为使用“li”而不是“movptr”来实现“mv”,并统一了移动函数指针的方式。
Unify the way of moving function pointer
https://github.com/openjdk/jdk/pull/10194

使用membar代替fence的直接调用来优化assembler function, 用mv取代li来让常数移动更加统一
Use macro-assembler functions as appropriate
https://github.com/openjdk/jdk/pull/10210

remove cbuf parameter from far_call/far_jump/trampoline in riscv.
https://github.com/openjdk/jdk/pull/10277

一些方法在sharedRuntime_riscv.cpp可以被复用
RISC-V: Move rt_call and xxx_move from SharedRuntime to MacroAssembler
https://github.com/openjdk/jdk/pull/10375

将所有在 AbstractAssembler的重定位封装成relocate()
https://github.com/openjdk/jdk/pull/10384

将movptr_with_offset改为movptr来对原有的movptr进行重载。https://github.com/openjdk/jdk/pull/10439

Calling intrinsic version of Thread.currentThread() in interpreter is ~30% faster on the Unmatched board:
https://github.com/openjdk/jdk/pull/10709

修改load_heap_oop store_heap_oop load_heap_oop_not_null三个方法中 = noreg的临时寄存器。
Remove implicit noreg temp register arguments in MacroAssembler
https://github.com/openjdk/jdk/pull/10778

仅修改代码格式或注释:
https://github.com/openjdk/jdk/pull/10227

注明RISCV64 OpenJDK在生成的调用中使用不同类型的调用。修改过时的注释
https://github.com/openjdk/jdk/pull/10311

删除部分代码
Use li instead of patchable movptr at non-patchable callsites
https://github.com/openjdk/jdk/pull/10462

将assembler.cpp/hpp 中的macro-assembler functions移动到masm
https://github.com/openjdk/jdk/pull/10697

修复minimal debug build
RISC-V: Minimal builds are broken
https://github.com/openjdk/jdk/pull/10742

Rename some assembler intrinsic functions for RVV 1.0
https://github.com/openjdk/jdk/pull/10878

increment and decrement使用t1作为临时寄存器,但是t1是flag register 在c2中。
Small refactoring for increment/decrement
https://github.com/openjdk/jdk/pull/11005

评论 (1)

hejianheng 创建了任务

Hi hejianheng001, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Compiler, and any of the maintainers: @Noah , @eastb233 , @Peilin Guo , @guoge , @wangyadong , @jiangfeilong , @cf-zhao , @编译小伙 , @周磊 , @stubCode , @kuen

openeuler-ci-bot 添加了
 
sig/Compiler
标签
hejianheng 修改了描述
hejianheng 修改了描述
hejianheng 修改了描述
hejianheng 修改了描述

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
Java
1
https://gitee.com/openeuler/bishengjdk-11.git
git@gitee.com:openeuler/bishengjdk-11.git
openeuler
bishengjdk-11
bishengjdk-11

搜索帮助