summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix a post-RA scheduling dependency bug.Dan Gohman2009-01-301-11/+90
| | | | | | | | | | | | | | | If a MachineInstr doesn't have a memoperand but has an opcode that is known to load or store, assume its memory reference may alias *anything*, including stack slots which the compiler completely controls. To partially compensate for this, teach the ScheduleDAG building code to do basic getUnderlyingValue analysis. This greatly reduces the number of instructions that require restrictive dependencies. This code will need to be revisited when we start doing real alias analysis, but it should suffice for now. llvm-svn: 63370
* Propagate debug loc info for MUL.Bill Wendling2009-01-301-16/+21
| | | | llvm-svn: 63369
* Propagate debug loc info in SUB.Bill Wendling2009-01-301-7/+8
| | | | llvm-svn: 63368
* Propagate debug loc info in ADDC and ADDE.Bill Wendling2009-01-301-11/+13
| | | | llvm-svn: 63367
* Propagate debug loc info in DAG combine's "ADD".Bill Wendling2009-01-301-20/+18
| | | | llvm-svn: 63366
* - Propagate debug loc info in combineSelectAndUse().Bill Wendling2009-01-301-16/+23
| | | | | | | - Modify ReassociateOps so that the resulting SDValue is what the comment claims it is. llvm-svn: 63365
* Propagate debug info when building SelectionDAG.Dale Johannesen2009-01-301-399/+519
| | | | llvm-svn: 63359
* Remove dead code, again.Devang Patel2009-01-301-14/+0
| | | | llvm-svn: 63358
* Remove dead code.Devang Patel2009-01-301-10/+0
| | | | llvm-svn: 63357
* Add DW_AT_declaration for class methods.Devang Patel2009-01-301-2/+5
| | | | llvm-svn: 63356
* Propagate debug location info for the token factor.Bill Wendling2009-01-301-5/+5
| | | | llvm-svn: 63355
* Add DebugLoc propagation to some of the methods in DAG combiner.Bill Wendling2009-01-301-27/+34
| | | | llvm-svn: 63350
* Correct the algorithms for choosing spill and restore points so that we ↵Owen Anderson2009-01-291-2/+23
| | | | | | | | don't try to insert loads/stores between call frame setup and the actual call. This fixes the last known failure for the pre-alloc-splitter. llvm-svn: 63339
* Explicitly add PseudoSourceValue information when loweringDan Gohman2009-01-291-10/+11
| | | | | | BUILD_VECTOR and conversions to stack operations. llvm-svn: 63333
* Make a few things const, fix some comments, and simplifyDan Gohman2009-01-291-16/+8
| | | | | | some assertions. llvm-svn: 63328
* Local register allocator shouldn't assume only the entry and landing pad ↵Evan Cheng2009-01-291-16/+13
| | | | | | basic blocks have live-ins. llvm-svn: 63323
* Fix two typos that Duncan spotted in a comment.Dan Gohman2009-01-291-1/+1
| | | | llvm-svn: 63312
* In the case of an extractelement on an insertelement value,Dan Gohman2009-01-291-1/+5
| | | | | | | the element indices may be equal if either one is not a constant. llvm-svn: 63311
* Revert r63273. This was already implemented by Dale. There's no need for myBill Wendling2009-01-291-72/+101
| | | | | | change. llvm-svn: 63301
* Fix an issue where restores could be inserted after a terminator instruction,Owen Anderson2009-01-291-4/+12
| | | | | | | | and an iterator invalidation issue. FreeBench/pifft no longer miscompiles with these fixes! llvm-svn: 63293
* Comments are good. :-)Owen Anderson2009-01-291-3/+30
| | | | llvm-svn: 63276
* Add support for aggressive load-use-store folding. This takes care of the Owen Anderson2009-01-291-19/+85
| | | | | | vast majority of code size regressions introduced by pre-alloc-splitting. llvm-svn: 63274
* - Add DebugLoc to getTargetNode(). Bill Wendling2009-01-291-101/+72
| | | | | | | | | - Modify TableGen to add the DebugLoc when calling getTargetNode. (The light-weight wrappers are only temporary. The non-DebugLoc version will be removed once the whole debug info stuff is finished with.) llvm-svn: 63273
* Exit with nice warnings when register allocator run out of registers.Evan Cheng2009-01-293-41/+88
| | | | llvm-svn: 63267
* Make x86's BT instruction matching more thorough, and add someDan Gohman2009-01-292-20/+73
| | | | | | | | | dagcombines that help it match in several more cases. Add several more cases to test/CodeGen/X86/bt.ll. This doesn't yet include matching for BT with an immediate operand, it just covers more register+register cases. llvm-svn: 63266
* A slight compile time optimization. If the caller knows there isn't a free ↵Evan Cheng2009-01-291-6/+6
| | | | | | register getReg() should not call getFreeReg(). llvm-svn: 63263
* Add DebugLoc-sensitive versions of many node creationDale Johannesen2009-01-291-0/+458
| | | | | | functions. Currently omitted: memcpy, memmove, memset. llvm-svn: 63259
* Fix comment about removeRange.Evan Cheng2009-01-291-1/+1
| | | | llvm-svn: 63255
* Add DebugLoc to the getNode() methods.Bill Wendling2009-01-281-41/+134
| | | | llvm-svn: 63245
* Add DebugLoc-aware constructors for SDNode derivedDale Johannesen2009-01-281-0/+23
| | | | | | | classes (those that reasonably have a DebugLoc associated with them). llvm-svn: 63236
* Do not forget to derived type while constructing an array type.Devang Patel2009-01-281-0/+2
| | | | llvm-svn: 63233
* Fixed extract element when the result needs to be promoted and the input ↵Mon P Wang2009-01-281-0/+2
| | | | | | widened. llvm-svn: 63217
* Make isOperationLegal do what its name suggests, and introduce aDan Gohman2009-01-285-55/+62
| | | | | | | | | | | | | | | new isOperationLegalOrCustom, which does what isOperationLegal previously did. Update a bunch of callers to use isOperationLegalOrCustom instead of isOperationLegal. In some case it wasn't obvious which behavior is desired; when in doubt I changed then to isOperationLegalOrCustom as that preserves their previous behavior. This is for the second half of PR3376. llvm-svn: 63212
* Formatting.Duncan Sands2009-01-281-8/+5
| | | | llvm-svn: 63199
* Rename getAnalysisToUpdate to getAnalysisIfAvailable.Duncan Sands2009-01-2810-14/+14
| | | | llvm-svn: 63198
* Use ValueType::bitsLT to simplify some code.Dan Gohman2009-01-282-2/+2
| | | | llvm-svn: 63170
* Use ZERO_EXTEND instead of ANY_EXTEND when promotingDan Gohman2009-01-282-2/+2
| | | | | | | shift amounts, to avoid implicitly assuming that target architectures will ignore the high bits. llvm-svn: 63169
* Add type DIE into appropriate context DIE.Devang Patel2009-01-271-3/+17
| | | | llvm-svn: 63154
* Add a DebugLoc field and some simple accessors.Dale Johannesen2009-01-271-7/+46
| | | | llvm-svn: 63152
* Refine DebugLoc per review comments.Evan Cheng2009-01-271-6/+7
| | | | llvm-svn: 63132
* Add an assertion to the form of SelectionDAG::getConstant that takesDan Gohman2009-01-273-7/+13
| | | | | | | | a uint64_t to verify that the value is in range for the given type, to help catch accidental overflow. Fix a few places that relied on getConstant implicitly truncating the value. llvm-svn: 63128
* Delete redundant return statements.Dan Gohman2009-01-271-7/+0
| | | | llvm-svn: 63120
* Make the pre-split-limit option more useful by using a per-function counter.Owen Anderson2009-01-271-1/+7
| | | | llvm-svn: 63091
* Assorted debug info fixes.Devang Patel2009-01-271-17/+19
| | | | | | | | - DW_AT_bit_size is only suitable for bitfields. - Encode source location info for derived types. - Source location and type size info is not useful for subroutine_type (info is included in respective DISubprogram) and array_type. llvm-svn: 63077
* No need to keep size of DebugLocations vector separately.Evan Cheng2009-01-261-2/+3
| | | | llvm-svn: 63070
* Make the Dwarf macro information section optional; CellSPU's assemblerScott Michel2009-01-261-5/+9
| | | | | | | doesn't support it. The default is set to 'true', so this should not impact any other target backends. llvm-svn: 63058
* Reapply r63025 and r63026, with fixes for the failing testcases.Owen Anderson2009-01-261-356/+13
| | | | llvm-svn: 63049
* Fix PR3393, which amounts to a bug in the expensiveDuncan Sands2009-01-262-16/+37
| | | | | | | | | checking logic. Rather than make the checking more complicated, I've tweaked some logic to make things conform to how the checking thought things ought to be, since this results in a simpler "mental model". llvm-svn: 63048
* Also revert r63206Bill Wendling2009-01-261-0/+321
| | | | llvm-svn: 63041
* Temporarily revert r63025 until the testsuite failures can be fixed.Bill Wendling2009-01-261-12/+34
| | | | llvm-svn: 63040
OpenPOWER on IntegriCloud