-
Notifications
You must be signed in to change notification settings - Fork 55
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: ucb-bar/esp-llvm
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: riscv-trunk
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: jeffy1009/riscv-llvm
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: jsshin
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
Can’t automatically merge.
Don’t worry, you can still create the pull request.
- 14 commits
- 8 files changed
- 2 contributors
Commits on Jul 28, 2016
-
bswap operation should be expanded. RISC-V instruction selection cannot handle this operation.
Configuration menu - View commit details
-
Copy full SHA for 7d28371 - Browse repository at this point
Copy the full SHA 7d28371View commit details -
JAL, JALR is not branch, but call. This bug caused infinite loops in RISC-V branch selector. Since JAL, JALR was considered as a branch, the branch selector tried to handle those instructions, but the changes were made at the terminator instruction which is the end of the basic block. This led to adding branch instruction again and again at the end of the basic block
Configuration menu - View commit details
-
Copy full SHA for 0bef30f - Browse repository at this point
Copy the full SHA 0bef30fView commit details -
add register mask to call instruction
There were no register mask operand in call instruction, which made register allocator use caller-saved register without properly saving and restoring it. So sometimes the procedure call has overridden the register, which caused program crashes.
Configuration menu - View commit details
-
Copy full SHA for 771d505 - Browse repository at this point
Copy the full SHA 771d505View commit details -
Calls to ExternalSymbol like memset, memcpy was converted to JAL instruction, and it caused linking to fail in some big programs, since the address offset could not fit in the immediate fields.
Configuration menu - View commit details
-
Copy full SHA for 5c98580 - Browse repository at this point
Copy the full SHA 5c98580View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2cafdc8 - Browse repository at this point
Copy the full SHA 2cafdc8View commit details
Commits on Apr 3, 2017
-
see the commited comments for the explanation Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6e4636a - Browse repository at this point
Copy the full SHA 6e4636aView commit details -
In RISC-V, 32-bit and 64-bit types are allowed in the instruction selection stage. Var args are passed to the callee either in register or in memory. Those passed in registers are also pushed onto the stack in the callee. va_start() will set the pointer to the first argument and each call of va_arg() will advance the pointer. In RISCV64, both 32-bit and 64-bit types are pushed on the stack 8-byte aligned. So the pointer must be advanced by 8 every time. Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3d7abfb - Browse repository at this point
Copy the full SHA 3d7abfbView commit details -
Fixed and refactored emitSelectCC
emitSelectCC assigned true and false value oppositely in one of its if-else cases. Fixed the issue and also refactored the code. (cherry picked from commit 026b87dec7a53c98a1539b1b46f038a0a1819cb6) Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for eee2bda - Browse repository at this point
Copy the full SHA eee2bdaView commit details -
Generate explicit sign and zero extension
RISCV-64 needs explicit sign extension for instructions without "W" at the end, and explicit zero extension for MUL instruction. Before this fix, "truncate" and "zext" IR instructions are selected to EXTRACT_SUBREG and SUBREG_TO_REG, respectively, which were optimized away during the following passes. This fix is not pretty, but I couldn't think of a better way that's also simple to apply. Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a1b8934 - Browse repository at this point
Copy the full SHA a1b8934View commit details -
RISCV_ZEXT expansion: Added kill flags
Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 623f250 - Browse repository at this point
Copy the full SHA 623f250View commit details -
Override isFPCloseToIncomingSP()
In current RISCV-LLVM, FP is actually set to the post-prolog SP, pointing the bottom of the function frame. Emergency spill slot needs to be close to the bottom of the stack, so that it can be reachble from FP without using another register (that is, the offset is fit into the imm field of LD/ST). If the offset does not fit, then we need a register to load the offset into, so we need to find another emergency spill slot.. creating the infinite loop. isFPCloseToIncomingSP() provides easy way to make the emergency spill slot close to the top/bottom of the stack frame. Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 30aabb9 - Browse repository at this point
Copy the full SHA 30aabb9View commit details -
I put Byval flags handling in clang TargetInfo.cpp. So there shouldn't be any byval flags in IR. Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b76558d - Browse repository at this point
Copy the full SHA b76558dView commit details
Commits on May 31, 2017
-
fixed minor uninitialized read bug ...
that caused undeterministic stack offset Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3e98f23 - Browse repository at this point
Copy the full SHA 3e98f23View commit details -
fixed isLoad/StoreFromStackSlot ...
which caused register to be spilled repeatedly and sometimes generated a long sequence of the same ld/st instructions Signed-off-by: Jangseop Shin <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 93668ea - Browse repository at this point
Copy the full SHA 93668eaView commit details
There are no files selected for viewing