summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* The spill restore needs to be resolved to the SP/FP just like the spillJim Grosbach2009-10-211-0/+2
| | | | llvm-svn: 84792
* Cleanup of frame index scavenging. Better code flow and more accuratelyJim Grosbach2009-10-211-35/+60
| | | | | | handles T2 and ARM use cases. llvm-svn: 84761
* Need a comma after imp-use.Evan Cheng2009-10-211-1/+3
| | | | llvm-svn: 84749
* Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail.Dan Gohman2009-10-211-489/+319
| | | | llvm-svn: 84727
* Respect src register allocation requirements when breaking ↵David Goodwin2009-10-201-17/+20
| | | | | | anti-dependencies. Remove some dead code. llvm-svn: 84691
* Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign)Anton Korobeynikov2009-10-201-4/+6
| | | | | | transform. llvm-svn: 84683
* Oops. Backing out 84681 - needs to wait for the indexing patch.Lang Hames2009-10-201-54/+35
| | | | llvm-svn: 84682
* Added some debugging output to pre-alloc splitting.Lang Hames2009-10-201-35/+54
| | | | llvm-svn: 84681
* Checkpoint more aggressive anti-dependency breaking for post-ra scheduler.David Goodwin2009-10-201-310/+477
| | | | llvm-svn: 84658
* Better handle instructions that re-def a scratch registerJim Grosbach2009-10-201-9/+18
| | | | llvm-svn: 84657
* Register re-use for scavenged frame indices must check for re-deginitionJim Grosbach2009-10-201-0/+4
| | | | | | of the register in the instruction which kills the scavenged value. llvm-svn: 84641
* Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks areDan Gohman2009-10-201-182/+343
| | | | | | | | | tracked. Instead of trying to manually keep track of these locations while doing complex modifications, just recompute them when they're needed. This fixes a bug in which the TopMBB and BotMBB were not correctly updated, leading to invalid transformations. llvm-svn: 84598
* Trim unnecessary includes.Evan Cheng2009-10-202-2/+0
| | | | llvm-svn: 84597
* Add getTopBlock and getBottomBlock member functions to MachineLoopInfo.Dan Gohman2009-10-201-0/+28
| | | | llvm-svn: 84596
* If the physical register being spilled does not have an interval, spill its ↵Evan Cheng2009-10-201-5/+21
| | | | | | sub-registers instead. llvm-svn: 84586
* Enable post-pass frame index register scavenging for ARM and Thumb2Jim Grosbach2009-10-201-5/+0
| | | | llvm-svn: 84585
* Adjust the scavenge register spilling to allow the target to choose anJim Grosbach2009-10-191-3/+2
| | | | | | | | | | appropriate restore location for the spill as well as perform the actual save and restore. The Thumb1 target uses this to make sure R12 is not clobbered while a spilled scavenger register is live there. llvm-svn: 84554
* Revert r84295, this unbreaks llvm-gcc bootstrap on x86-64/linuxAnton Korobeynikov2009-10-191-355/+177
| | | | llvm-svn: 84516
* Fix a typo in a comment.Dan Gohman2009-10-191-1/+1
| | | | llvm-svn: 84504
* Change a few instance variables to be local variables.Dan Gohman2009-10-191-11/+6
| | | | llvm-svn: 84503
* Spill slots cannot alias.Evan Cheng2009-10-183-9/+16
| | | | llvm-svn: 84432
* -Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixedEvan Cheng2009-10-189-67/+73
| | | | | | | | | | | stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. llvm-svn: 84424
* Only fixed stack objects and spill slots should be get FixedStack ↵Evan Cheng2009-10-187-42/+64
| | | | | | PseudoSourceValue. llvm-svn: 84411
* Fix my -Asserts warning fix.Daniel Dunbar2009-10-171-2/+3
| | | | llvm-svn: 84372
* Suppress -Asserts warning.Daniel Dunbar2009-10-171-2/+2
| | | | llvm-svn: 84327
* Distinquish stack slots from other stack objects. They (and fixed objects) ↵Evan Cheng2009-10-174-5/+5
| | | | | | get FixedStack PseudoSourceValues. llvm-svn: 84326
* Revert 84315 for now. Re-thinking the patch.Evan Cheng2009-10-178-29/+26
| | | | llvm-svn: 84321
* Rename getFixedStack to getStackObject. The stack objects represented are notEvan Cheng2009-10-178-26/+29
| | | | | | necessarily fixed. Only those will negative frame indices are "fixed." llvm-svn: 84315
* 80 col violation.Evan Cheng2009-10-171-1/+2
| | | | llvm-svn: 84311
* Delete an obsolete comment.Dan Gohman2009-10-171-2/+1
| | | | llvm-svn: 84300
* Remove MallocInst from LLVM Instructions.Victor Hernandez2009-10-172-44/+0
| | | | llvm-svn: 84299
* Enhance CodePlacementOpt's unconditional intra-loop branch elimination logicDan Gohman2009-10-171-177/+354
| | | | | | | | | | | | to be more general and understand more varieties of loops. Teach CodePlacementOpt to reorganize the basic blocks of a loop so that they are contiguous. This also includes a fair amount of logic for preserving fall-through edges while doing so. This fixes a BranchFolding-ism where blocks which can't be made to use a fall-through edge and don't conveniently fit anywhere nearby get tossed out to the end of the function. llvm-svn: 84295
* Allow widening of extract subvectorMon P Wang2009-10-162-0/+8
| | | | llvm-svn: 84279
* Do not emit name entry for a pointer type.Devang Patel2009-10-161-1/+1
| | | | llvm-svn: 84276
* Change createPostRAScheduler so it can be turned off at llc -O1.Evan Cheng2009-10-162-5/+7
| | | | llvm-svn: 84273
* If there is not any llvm instruction associated with each lexical scope ↵Devang Patel2009-10-161-2/+10
| | | | | | encoded in debug info then create such scope on demand for variable info. llvm-svn: 84262
* If post-alloc scheduler is not enabled, it should return false, not true.Evan Cheng2009-10-161-3/+3
| | | | llvm-svn: 84248
* Indent code.Zhongxing Xu2009-10-161-1/+1
| | | | llvm-svn: 84247
* 80 column violation.Evan Cheng2009-10-161-1/+2
| | | | llvm-svn: 84244
* Report errors correctly for unselected target intrinsics.Jakob Stoklund Olesen2009-10-151-6/+9
| | | | llvm-svn: 84193
* Make CodePlacementOpt align loops, rather than loop headers. TheDan Gohman2009-10-151-71/+30
| | | | | | | | | | header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. llvm-svn: 84158
* When LiveVariables is adding implicit-def to model "partial dead", add the ↵Evan Cheng2009-10-141-1/+12
| | | | | | earlyclobber marker if the superreg def has it. llvm-svn: 84153
* Print earlyclobber for implicit-defs as well.Evan Cheng2009-10-141-6/+6
| | | | llvm-svn: 84152
* Make loop not recalc getNumOperands() each time aroundJim Grosbach2009-10-141-3/+2
| | | | llvm-svn: 84138
* Add support to record DbgScope as inlined scope.Devang Patel2009-10-142-25/+44
| | | | llvm-svn: 84134
* quiet compiler warningJim Grosbach2009-10-141-1/+1
| | | | llvm-svn: 84133
* I don't see any point in having both eh.selector.i32 and eh.selector.i64,Duncan Sands2009-10-144-29/+27
| | | | | | | | | | | | | so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). llvm-svn: 84106
* This remat entry is basically done. There are hooks to allow targetsDan Gohman2009-10-141-38/+0
| | | | | | | | to remat non-load instructions as loads, and the remat code now uses the UnmodeledSideEffects flags, MachineMemOperands, and similar things to decide which instructions are valid for rematerialization. llvm-svn: 84060
* Add a few README.txt items.Dan Gohman2009-10-131-0/+29
| | | | llvm-svn: 84059
* s/DebugLoc.CompileUnit/DebugLoc.Scope/gDevang Patel2009-10-135-22/+23
| | | | | | s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g llvm-svn: 84054
OpenPOWER on IntegriCloud