-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RISC-V][JIT] JIT/CodeGenBringUpTest #84748
Conversation
- Update Floating Point Compare - Implement NYI functions
- Implement NYI functions
- Implement NYI functions
- Update genFnPrologCalleeRegArgs
Fix an error in ./JIT/CodeGenBringUpTests/struct16args_d/struct16args_d.sh
Fixed erros in belows ./JIT/CodeGenBringUpTests/Rotate_d/Rotate_d.sh ./JIT/CodeGenBringUpTests/Rotate_do/Rotate_do.sh ./JIT/CodeGenBringUpTests/Rotate_r/Rotate_r.sh ./JIT/CodeGenBringUpTests/Rotate_ro/Rotate_ro.sh
Resolve ``` ./JIT/CodeGenBringUpTests/JTrueNeFP_do/JTrueNeFP_do.sh ./JIT/CodeGenBringUpTests/JTrueNeFP_d/JTrueNeFP_d.sh ./JIT/CodeGenBringUpTests/JTrueNeFP_r/JTrueNeFP_r.sh ./JIT/CodeGenBringUpTests/JTrueNeFP_ro/JTrueNeFP_ro.sh ```
Add a missed part for making constant. In the cases, it is -12. Resolved ./JIT/CodeGenBringUpTests/NegRMW_do/NegRMW_do.sh ./JIT/CodeGenBringUpTests/NegRMW_ro/NegRMW_ro.sh
TODO-RISCV64: We should optimize constant and address construction.
- Change fcvt to fmv in ins_Copy
- Add Neg for float - Add rounding mode in float arithmetic
- remove dead code
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsFixed errors in JIT for JIT/CodeGenBringupTest
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need helps and reviews.
@@ -1087,45 +1112,56 @@ void emitter::emitIns_I_la(emitAttr size, regNumber reg, ssize_t imm) | |||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated a emitIns_I_la
which make a constant value. However, I think there is better solution for emitIns_I_la
. If you have any idea, please help me! Thank you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It can be optimized later, when the RISC-V codes are ready to go into the optimizing phase.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For other platforms we have instGen_Set_Reg_To_Imm
which is responsible for emitting the instructions to set a register to an arbitrarily sized immediate. However, it lives in CodeGen
.
I can see that the emitIns_I_la
is used for some contained addresses with large offsets that need to be first materialized into a register. In general, it would be better to avoid containing these addresses in the first place as it misses the point of containment, which is that the parent node can more efficiently handle the codegen of the child node. If the codegen is going to materialize the value into a register anyway, then there is no reason to mark it contained in the first place.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. Next time, I will update emitIns_I_la to instGen_Set_Reg_To_Imm and check containment on RISC-V.
Thank you!
Build failure will be resolved by #82381. Until then, put |
- Reverse JCMP cond for reversing jump opt
This reverts commit bed8b9c.
Could this PR be merged? |
@@ -3327,7 +3351,88 @@ void CodeGen::genCodeForCompare(GenTreeOp* tree) | |||
if (varTypeIsFloating(op1Type)) | |||
{ | |||
assert(tree->OperIs(GT_LT, GT_LE, GT_EQ, GT_NE, GT_GT, GT_GE)); | |||
NYI_RISCV64("genCodeForCompare-----unimplemented on RISCV64 yet----"); | |||
bool IsUnordered = (tree->gtFlags & GTF_RELOP_NAN_UN) != 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is wrong naming conventions (should be isUnordered
), but let's not hold this PR up on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I will fix in the next PR.
JIT/CodeGenBringupTest tests passed
Some tests failed with CHECKED or RELEASE build.