- Feb 22, 2012
-
-
Hal Finkel authored
The standard function epilog includes a .size directive, but ppc64 uses an alternate local symbol to tag the actual start of each function. Until recently, binutils accepted the .size directive as: .size test1, .Ltmp0-test1 however, using this directive with recent binutils will result in the error: .size expression for XXX does not evaluate to a constant so we must use the label which actually tags the start of the function. llvm-svn: 151200
-
Michael J. Spencer authored
Patch by Joe Groff! llvm-svn: 151183
-
Andrew Trick authored
llvm-svn: 151178
-
Chad Rosier authored
llvm-svn: 151169
-
Jakob Stoklund Olesen authored
llvm-svn: 151167
-
Eric Christopher authored
Worth another 45k (1%) off of a large C++ testcase. rdar://10909458 llvm-svn: 151144
-
Eric Christopher authored
llvm-svn: 151143
-
Eric Christopher authored
llvm-svn: 151142
-
Andrew Trick authored
The vast majority of virtual register definitions don't need an entry in the DAG builder's VRegDefs set. llvm-svn: 151136
-
Andrew Trick authored
Affect on SD scheduling and postRA scheduling: Printing the DAG will display the nodes in top-down topological order. This matches the order within the MBB and makes my life much easier in general. Affect on misched: We don't need to track virtual register uses at all. This is awesome. I also intend to rely on the SUnit ID as a topo-sort index. So if A < B then we cannot have an edge B -> A. llvm-svn: 151135
-
Craig Topper authored
Make all pointers to TargetRegisterClass const since they are all pointers to static data that should not be modified. llvm-svn: 151134
-
Jakob Stoklund Olesen authored
This makes RAFast 4% faster, and it gets rid of the dodgy DenseMap iteration. This also revealed that RAFast would sometimes dereference DenseMap iterators after erasing other elements from the map. That does seem to work in the current DenseMap implementation, but SparseSet doesn't allow it. llvm-svn: 151111
-
- Feb 21, 2012
-
-
Lang Hames authored
bundles. This method takes a bundle start and an MI being bundled, and makes the intervals for the MI's operands appear to start/end on the bundle start. Also fixes some minor cosmetic issues (whitespace, naming convention) in the HMEditor code. llvm-svn: 151099
-
Eric Christopher authored
Part of rdar://10493979 where it reduces by about .5% (10k) llvm-svn: 151097
-
Andrew Trick authored
Passes after RegAlloc should be able to rely on MRI->getNumVirtRegs() == 0. This makes sharing code for pre/postRA passes more robust. Now, to check if a pass is running before the RA pipeline begins, use MRI->isSSA(). To check if a pass is running after the RA pipeline ends, use !MRI->getNumVirtRegs(). PEI resets virtual regs when it's done scavenging. PTX will either have to provide its own PEI pass or assign physregs. llvm-svn: 151032
-
Andrew Trick authored
llvm-svn: 151031
-
Lang Hames authored
llvm-svn: 151006
-
Evan Cheng authored
ecx = mov eax al = mov ch The second copy is not a nop because the sub-indices of ecx,ch is not the same of that of eax/al. Re-enabled machine-cp. PR11940 llvm-svn: 151002
-
- Feb 20, 2012
-
-
James Molloy authored
llvm-svn: 150957
-
Evan Cheng authored
flow changes have already hidden the bug. rdar://10893812 llvm-svn: 150949
-
- Feb 19, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150921
-
Ahmed Charles authored
llvm-svn: 150918
-
Lang Hames authored
llvm-svn: 150915
-
Lang Hames authored
llvm-svn: 150914
-
Lang Hames authored
llvm-svn: 150912
-
Lang Hames authored
llvm-svn: 150910
-
Lang Hames authored
Defer sanity checks on live intervals until after all have been updated. Hold (LiveInterval, LiveRange) pairs to update, rather than vregs. llvm-svn: 150909
-
- Feb 18, 2012
-
-
Lang Hames authored
llvm-svn: 150851
-
Eric Christopher authored
llvm-svn: 150848
-
- Feb 17, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 150842
-
Matt Beaumont-Gay authored
llvm-svn: 150841
-
Lang Hames authored
llvm-svn: 150840
-
Jakob Stoklund Olesen authored
MRI keeps track of which physregs have been used. Make sure it gets updated with all the regmask-clobbered registers. Delete the closePhysRegsUsed() function which isn't necessary. llvm-svn: 150830
-
Lang Hames authored
any changes. Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides an API for updating live intervals when code is moved or bundled. llvm-svn: 150826
-
Jim Grosbach authored
llvm-svn: 150820
-
Jakob Stoklund Olesen authored
This caused miscompilations on out-of-tree targets, and possibly i386 as well. I'll find some other way of hoisting %rip-relative loads from loops containing calls. llvm-svn: 150816
-
David Chisnall authored
... and it's probably best to use the correct alignment, rather than just guessing that it's the same as the size. llvm-svn: 150813
-
David Chisnall authored
It turns out that putting an 8-byte symbol in a 4-byte section makes Solaris ld sulk. GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons... Thanks to Anton, Duncan and Rafael for helping me track this down. Pointy hat to Rafael for introducing the bug in the first place. llvm-svn: 150811
-
Lang Hames authored
llvm-svn: 150778
-
Lang Hames authored
llvm-svn: 150773
-