summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Add edge source labels to SelectionDAG graphs, now that the graph printingDan Gohman2009-12-011-0/+5
| | | | | | | framework omits differentiated edge sources in the case where the labels are empty strings. llvm-svn: 90254
* Minor cleanups.Dan Gohman2009-12-011-9/+9
| | | | llvm-svn: 90253
* Trim an unnecessary #include.Dan Gohman2009-12-011-1/+0
| | | | llvm-svn: 90252
* Clear function specific containers while processing end of a function, even ↵Devang Patel2009-12-011-9/+7
| | | | | | if DW_TAG_subprogram for current function is not found. llvm-svn: 90247
* Move PHIElimination::isLiveOut method to LiveVariables.Jakob Stoklund Olesen2009-12-013-54/+47
| | | | | | | | We want LiveVariables clients to use methods rather than accessing the getVarInfo data structure directly. That way it will be possible to change the LiveVariables representation. llvm-svn: 90240
* Use CFG connectedness as a secondary sort key when deciding the order of ↵Jakob Stoklund Olesen2009-12-011-3/+13
| | | | | | | | | copy coalescing. This means that well connected blocks are copy coalesced before the less connected blocks. Connected blocks are more difficult to coalesce because intervals are more complicated, so handling them first gives a greater chance of success. llvm-svn: 90194
* Devang pointed out that this code should use DIScope instead ofDan Gohman2009-12-011-3/+3
| | | | | | DICompileUnit. This code now prints debug filenames successfully. llvm-svn: 90181
* Fix PR5614: parts of a physical register def may be killed the rest.Evan Cheng2009-12-011-1/+47
| | | | llvm-svn: 90180
* If pointer type has a name then do not ignore the name.Devang Patel2009-11-301-1/+1
| | | | llvm-svn: 90172
* New virtual registers created for spill intervals should inherit allocation ↵Jakob Stoklund Olesen2009-11-301-0/+6
| | | | | | | | | | | | | | | | | | | hints from the original register. This helps us avoid silly copies when rematting values that are copied to a physical register: leaq _.str44(%rip), %rcx movq %rcx, %rsi call _strcmp becomes: leaq _.str44(%rip), %rsi call _strcmp The coalescer will not touch the movq because that would tie down the physical register. llvm-svn: 90163
* Reprioritize tests for tail duplication to be aggressive about indirectBob Wilson2009-11-301-3/+3
| | | | | | | | branches even when optimizing for code size. Unless we find evidence to the contrary in the future, the special treatment for indirect branches does not have a significant effect on code size, and performance still matters with -Os. llvm-svn: 90147
* Remove isProfitableToDuplicateIndirectBranch target hook. It is profitableBob Wilson2009-11-301-2/+1
| | | | | | | | | for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. llvm-svn: 90144
* Fix last DOTGraphTraits problems in CompilationGraph.Tobias Grosser2009-11-301-1/+1
| | | | llvm-svn: 90136
* Remove ShortNames from getNodeLabel in DOTGraphTraitsTobias Grosser2009-11-303-23/+20
| | | | llvm-svn: 90134
* Instantiate DefaultDOTGraphTraitsTobias Grosser2009-11-303-2/+11
| | | | llvm-svn: 90133
* Added support to allow clients to custom widen. For X86, custom widen ↵Mon P Wang2009-11-305-56/+92
| | | | | | | | | vectors for divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. llvm-svn: 90108
* Rename new TailDuplicationPass to avoid name conflict with the old one.Bob Wilson2009-11-262-12/+12
| | | | llvm-svn: 89968
* 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
OpenPOWER on IntegriCloud