User Details
- User Since
- Sep 24 2018, 10:28 PM (234 w, 5 d)
Yesterday
Address Phoebe's comments.
Add test case to check function can return correctly with
extra prolog and epilog.
Fri, Mar 24
Address Phoebe's comments.
@rupprecht, could you help to check if https://reviews.llvm.org/D146862 can fix your issue?
repro_test`Halide::Runtime::Internal::halide_get_cpu_features:
0x55555806e23e <+1246>: movq -0x48(%rbp), %r10 0x55555806e242 <+1250>: leaq -0x28(%rbp), %rsp 0x55555806e246 <+1254>: popq %rbx 0x55555806e247 <+1255>: popq %r12 0x55555806e249 <+1257>: popq %r13 0x55555806e24b <+1259>: popq %r14 0x55555806e24d <+1261>: popq %r15 0x55555806e24f <+1263>: popq %rbp 0x55555806e250 <+1264>: leaq -0x10(%r10), %rsp-> 0x55555806e254 <+1268>: retq
(lldb) x/2 $rsp
0x7fffffffb810: 0xffffb890 0x00007fff
(lldb) x/2 0x7fffffffb818
0x7fffffffb818: 0x5806dc35 0x00005555
@akshaykhadse, do you want me to help merge the patch?
Thu, Mar 23
LGMT with NIT comments.
LGTM
Wed, Mar 22
Tue, Mar 21
There are live range issue for the physical register. Let me revert the patch first.
Mon, Mar 20
Address Phoebe's comments.
Mon, Mar 13
Address Simon's comments.
The patch is ready for review.
- Use scratch register for argument base pointer.
- Fix CFI instruction
- Enhance replacement of frame pointer with argument base pointer.
- c++ test case (https://reviews.llvm.org/D145926) can pass with -g.
Sun, Mar 12
Sat, Mar 11
Fri, Mar 10
Update test cases.
Update test cases.
Address Phoebe's comments.
Use virtual register for argument stack slot rebase.
Address some of Phoebe's comments. Need another patch
to create new register class.
Wed, Mar 8
Add unwind attibute to test cfi instruction emit.
This is the most straightforward/maintainable, probably.
Fri, Mar 3
Mon, Feb 27
The base pointer register is reserved by compiler, we can't reserve too much register?
Don't know what ech cif_escape means
llvm-readobj --unwind can decode the DWARF for you.
The important thing is that it allocates a variable amount of space between the arguments and the frame pointer, and saves the incoming value of esp on the stack.
LGTM.
Possible alternatives:
- Use ebp... but this messes with unwinding, and doesn't actually solve the issue in general (if the inline asm references function arguments, those references are ebp-relative).
Why it would mess unwinding? The cfi instruction can indicate %esi to compute CFA. The assembly code may look like below. Yes, there is still issue if inline asm references function arguments after modifying %esi.
Sun, Feb 26
Deal. And because I am on busy for a long time and it is also better to let intel guy handle x86-related feature, I am happy with the patch being commandeered.
Sat, Feb 25
Rebase and update test case.
Address Phoebe's comments.
Feb 24 2023
Feb 23 2023
update test case.
I create https://reviews.llvm.org/D144625 to address the issues.
Feb 22 2023
Address Craig's comments.