[LLVMbugs] [Bug 13783] New: LDTLSCleanup pass leaves live physregs behind
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Sep 6 11:05:07 PDT 2012
http://llvm.org/bugs/show_bug.cgi?id=13783
Bug #: 13783
Summary: LDTLSCleanup pass leaves live physregs behind
Product: libraries
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: stoklund at 2pi.dk
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
The LDTLSCleanup looks like a special-purpose CSE pass for TLS_base_addr
instructions. It leaves a lot of live physreg copies behind, preventing good
register allocation:
%vreg6<def> = MOVPC32r 0, %ESP<imp-use>; GR32:%vreg6
%vreg0<def,tied1> = ADD32ri %vreg6<tied0>, <es:_GLOBAL_OFFSET_TABLE_>
%EBX<def> = COPY %vreg0; GR32_NOSP:%vreg0
TLS_base_addr32 %noreg, 1, %EBX, <ga:@j>[TF=9], %noreg, ...
%vreg5<def> = COPY %EAX; GR32:%vreg5
%vreg1<def> = COPY %EAX; GR32:%vreg1
%vreg2<def> = MOV32rm %vreg1, 1, %noreg, <ga:@j>[TF=13], %noreg
%EBX<def> = COPY %vreg0; GR32_NOSP:%vreg0
%EAX<def> = COPY %vreg5; GR32:%vreg5
%vreg3<def> = COPY %EAX; GR32:%vreg3
Local dynamic TLS should use the normal CSE utilities.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list