summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* When all defs of a vr are implicit_def, delete all of the defs.Evan Cheng2009-11-261-2/+6
| | | | llvm-svn: 89905
* Split tail duplication into a separate pass. This is needed to avoidBob Wilson2009-11-266-239/+310
| | | | | | | | | running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. llvm-svn: 89904
* ProcessImplicitDefs should watch out for invalidated iterator and extra ↵Evan Cheng2009-11-251-14/+45
| | | | | | implicit operands on copies. llvm-svn: 89880
* Avoid some possibly unsafe uses of StringRef::data().Benjamin Kramer2009-11-251-3/+3
| | | | llvm-svn: 89873
* Use StringRef (again) in DebugInfo interface.Devang Patel2009-11-252-44/+42
| | | | llvm-svn: 89866
* Refactor target hook for tail duplication as requested by Chris.Bob Wilson2009-11-241-3/+12
| | | | | | | | | | | | Make tail duplication of indirect branches much more aggressive (for targets that indicate that it is profitable), based on further experience with this transformation. I compiled 3 large applications with and without this more aggressive tail duplication and measured minimal changes in code size. ("size" on Darwin seems to round the text size up to the nearest page boundary, so I can only say that any code size increase was less than one 4k page.) Radar 7421267. llvm-svn: 89814
* Use StringRef instead of std::string in DIEString.Devang Patel2009-11-244-5/+5
| | | | llvm-svn: 89793
* Remove DebugLabelFolder pass. It is not used by dwarf writer anymore.Devang Patel2009-11-242-76/+0
| | | | llvm-svn: 89790
* Swith to pubtypes section before emitting pub types.Devang Patel2009-11-241-0/+3
| | | | llvm-svn: 89787
* Emit pubtypes.Devang Patel2009-11-242-23/+95
| | | | llvm-svn: 89725
* <rdar://problem/6721894>. Allow multiple registers to be renamed together ↵David Goodwin2009-11-241-6/+0
| | | | | | (super and sub) if necessary to break an anti-dependence. llvm-svn: 89722
* Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.Dan Gohman2009-11-233-24/+0
| | | | | | | | Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. llvm-svn: 89711
* Simplify this code.Dan Gohman2009-11-231-1/+1
| | | | llvm-svn: 89702
* Print the debug info line and column in MachineInstr::print even when there'sDan Gohman2009-11-231-2/+3
| | | | | | no filename. This situation is apparently fairly common right now. llvm-svn: 89701
* Revert r89487.Devang Patel2009-11-231-1/+1
| | | | llvm-svn: 89686
* Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency.Dan Gohman2009-11-233-15/+18
| | | | llvm-svn: 89683
* Rename SelectionDAGLowering to SelectionDAGBuilder, and renameDan Gohman2009-11-235-238/+238
| | | | | | SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. llvm-svn: 89681
* Move RegsForValue to an anonymous namespace, since it is only usedDan Gohman2009-11-231-2/+2
| | | | | | in this file. llvm-svn: 89675
* Move some more code out of SelectionDAGBuild.cpp and intoDan Gohman2009-11-235-74/+76
| | | | | | FunctionLoweringInfo.cpp. llvm-svn: 89674
* Update CMake file.Ted Kremenek2009-11-231-0/+1
| | | | llvm-svn: 89671
* Move the FunctionLoweringInfo class and some related utility functions outDan Gohman2009-11-235-310/+419
| | | | | | | of SelectionDAGBuild.h/cpp into its own files, to help separate general lowering logic from SelectionDAG-specific lowering logic. llvm-svn: 89667
* Pull LLVMContext out of PromoteMemToReg.Nick Lewycky2009-11-231-1/+1
| | | | llvm-svn: 89645
* Add getFrameIndexReference() to TargetRegisterInfo, which allows targets toJim Grosbach2009-11-221-5/+6
| | | | | | | | | tell debug info which base register to use to reference a frame index on a per-index basis. This is useful, for example, in the presence of dynamic stack realignment when local variables are indexed via the stack pointer and stack-based arguments via the frame pointer. llvm-svn: 89620
* 80-column cleanupJim Grosbach2009-11-221-10/+18
| | | | llvm-svn: 89612
* Teach MachineBasicBlock::updateTerminator() to handle a failing ↵Jakob Stoklund Olesen2009-11-221-2/+8
| | | | | | | | TII->ReverseBranchCondition(Cond) call. This fixes the MallocBench/cfrac test case regression. llvm-svn: 89608
* remove trailing whitespaceJim Grosbach2009-11-211-39/+39
| | | | llvm-svn: 89567
* Allow target to disable if-converting predicable instructions. e.g. NEON ↵Evan Cheng2009-11-211-1/+1
| | | | | | instructions under ARM mode. llvm-svn: 89541
* Cosmetic changes, which were long overdue, in DwarfDebug.cpp.Devang Patel2009-11-215-536/+539
| | | | llvm-svn: 89537
* We are not using DBG_STOPPOINT anymore.Devang Patel2009-11-212-54/+1
| | | | llvm-svn: 89536
* Be more clever about calculating live variables through new basic blocks.Jakob Stoklund Olesen2009-11-213-43/+31
| | | | | | | | | | | | When splitting a critical edge, the registers live through the edge are: - Used in a PHI instruction, or - Live out from the predecessor, and - Live in to the successor. This allows the coalescer to eliminate even more phi joins. llvm-svn: 89530
* Remove dead code.Devang Patel2009-11-211-15/+0
| | | | llvm-svn: 89522
* When generating a vector the really slow way, via loadsDale Johannesen2009-11-211-3/+9
| | | | | | | and stores, handle the case where the element size is not a valid target type correctly (PPC). llvm-svn: 89521
* There is no need to use FoldingSet to unique DIEs. Devang Patel2009-11-214-309/+58
| | | | | | DIEs are created from MDNode, which are already uniqued. And DwarfDebug already uses ValueMaps to find and use existing DIE for a given MDNode. llvm-svn: 89518
* Restructure code to allow renaming of multiple-register groups for anti-dep ↵David Goodwin2009-11-201-44/+73
| | | | | | breaking. llvm-svn: 89511
* Enable hoisting load from constant memories.Evan Cheng2009-11-201-21/+6
| | | | llvm-svn: 89510
* Target-independent support for TargetFlags on BlockAddress operands,Dan Gohman2009-11-204-11/+20
| | | | | | and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506
* Do not hold on to a map slot while new entries may be inserted into the map.Devang Patel2009-11-201-27/+33
| | | | | | Use ValueMap, instead of std::map. llvm-svn: 89490
* Cleanups.David Greene2009-11-201-3/+6
| | | | | | Make things a little more efficient as suggested by Evan. llvm-svn: 89489
* There is no need to emit source location info for DW_TAG_pointer_type.Devang Patel2009-11-201-1/+1
| | | | llvm-svn: 89487
* Add option -licm-const-load to hoist all loads from constant memory.Evan Cheng2009-11-201-19/+56
| | | | llvm-svn: 89477
* Remove some old experimental code that is no longer needed. Remove ↵David Goodwin2009-11-208-241/+79
| | | | | | additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. llvm-svn: 89471
* More consistent labelling of basic blocks in debug outputJakob Stoklund Olesen2009-11-201-1/+2
| | | | llvm-svn: 89470
* Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048),Duncan Sands2009-11-202-35/+23
| | | | | | | | which was an expensive checks failure due to a bug in the checking. This patch in essence reverts the original fix for PR3393, and refixes it by a tweak to the way expensive checking is done. llvm-svn: 89454
* Fix fast-isel to avoid selecting the return instruction if aDan Gohman2009-11-201-3/+15
| | | | | | tail call has been encountered. llvm-svn: 89444
* Add an experimental option to run gep-splitting and no-load GVNDan Gohman2009-11-201-0/+11
| | | | | | just before codegen. llvm-svn: 89439
* Add MachineBasicBlock::getName, and use it in place of getBasicBlock()->getName.Jakob Stoklund Olesen2009-11-206-7/+14
| | | | | | Fix debug code that assumes getBasicBlock never returns NULL. llvm-svn: 89428
* Removed references to LiveStacks from Spiller.* . They're no longer needed.Lang Hames2009-11-203-15/+9
| | | | llvm-svn: 89422
* Fix a couple of problems with maintaining liveness information for antidep ↵David Goodwin2009-11-192-18/+50
| | | | | | breaking. llvm-svn: 89404
* Place new basic blocks immediately after their predecessor when splittingJakob Stoklund Olesen2009-11-191-7/+7
| | | | | | | | | critical edges in PHIElimination. This has a huge impact on regalloc performance, and we recover almost all of the 10% compile time regression that edge splitting introduced. llvm-svn: 89381
* Reverting the EH table patches.Bill Wendling2009-11-191-29/+6
| | | | | | | | | | | | | $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp llvm-svn: 89379
OpenPOWER on IntegriCloud