aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add DebugLoc to the getNode() methods.Bill Wendling2009-01-281-41/+134
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63245 91177308-0d34-0410-b5e6-96231b3b80d8
* Add DebugLoc-aware constructors for SDNode derivedDale Johannesen2009-01-281-0/+23
| | | | | | | | | classes (those that reasonably have a DebugLoc associated with them). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63236 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not forget to derived type while constructing an array type.Devang Patel2009-01-281-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63233 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some issues with volatility, move "CanConvertToScalar" check Chris Lattner2009-01-281-21/+33
| | | | | | | after the others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63227 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed extract element when the result needs to be promoted and the input ↵Mon P Wang2009-01-281-0/+2
| | | | | | widened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63217 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63212 91177308-0d34-0410-b5e6-96231b3b80d8
* Formatting.Duncan Sands2009-01-281-8/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63199 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename getAnalysisToUpdate to getAnalysisIfAvailable.Duncan Sands2009-01-2825-56/+56
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63198 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR3415 (infinite loop in EscapeAnalysis) byDuncan Sands2009-01-282-159/+0
| | | | | | | deleting the escape analysis pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63197 91177308-0d34-0410-b5e6-96231b3b80d8
* The memory alignment requirement on some of the mov{h|l}p{d|s} patterns are ↵Evan Cheng2009-01-282-18/+21
| | | | | | 16-byte. That is overly strict. These instructions read / write f64 memory locations without alignment requirement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63195 91177308-0d34-0410-b5e6-96231b3b80d8
* Add shuffle splat pattern for x86 sse shifts.Mon P Wang2009-01-281-19/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63193 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify comment.Mikhail Glushenkov2009-01-281-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63171 91177308-0d34-0410-b5e6-96231b3b80d8
* Use ValueType::bitsLT to simplify some code.Dan Gohman2009-01-282-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63170 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63169 91177308-0d34-0410-b5e6-96231b3b80d8
* Suppress a compile time warning.Evan Cheng2009-01-281-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63161 91177308-0d34-0410-b5e6-96231b3b80d8
* Add type DIE into appropriate context DIE.Devang Patel2009-01-271-3/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63154 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a DebugLoc field and some simple accessors.Dale Johannesen2009-01-271-7/+46
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63152 91177308-0d34-0410-b5e6-96231b3b80d8
* Treat [1 x i8] zeroinitializer as a C string, placing such stuff intoAnton Korobeynikov2009-01-273-6/+24
| | | | | | | | | | | | mergeable string section. I don't see any bad impact of such decision (rather then placing it into mergeable const section, as it was before), but at least Darwin linker won't complain anymore. The problem in LLVM is that we don't have special type for string constants (like gcc does). Even more, we have two separate types: ConstatArray for non-null strings and ConstantAggregateZero for null stuff.... It's a bit weird :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63142 91177308-0d34-0410-b5e6-96231b3b80d8
* Refine DebugLoc per review comments.Evan Cheng2009-01-271-6/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63132 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63128 91177308-0d34-0410-b5e6-96231b3b80d8
* Reformat the allocation-order arrays to a more conventional style.Dan Gohman2009-01-271-44/+55
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63121 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete redundant return statements.Dan Gohman2009-01-271-7/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63120 91177308-0d34-0410-b5e6-96231b3b80d8
* Respect the DisableRedZone flag on PowerPC.Dan Gohman2009-01-271-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63119 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify findNonImmUse; return the result using the return valueDan Gohman2009-01-271-16/+14
| | | | | | | instead of via a by-reference argument. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63118 91177308-0d34-0410-b5e6-96231b3b80d8
* APInt's countLeadingOnes() was broken for negative i128 values,Torok Edwin2009-01-271-1/+7
| | | | | | | | | | causing assertion failures in getSExtValue(). Fix it by making highWordBits actually contain what its name says, and add some more unit-tests for APInt. This fixes PR3419. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63107 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the pre-split-limit option more useful by using a per-function counter.Owen Anderson2009-01-271-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63091 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement multiple with overflow by 2 with an add instruction.Evan Cheng2009-01-271-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63090 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate unnecessary operands-list traversals.Dan Gohman2009-01-271-6/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63088 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable the red zone on x86-64 by default.Dan Gohman2009-01-271-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63078 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63077 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the Red Zone calculation for functions with frame pointers.Dan Gohman2009-01-271-7/+10
| | | | | | | | | Don't use the Red Zone when dynamic stack realignment is needed. This could be implemented, but most x86-64 ABIs don't require dynamic stack realignment so it isn't urgent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63074 91177308-0d34-0410-b5e6-96231b3b80d8
* No need to keep size of DebugLocations vector separately.Evan Cheng2009-01-261-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63070 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU:Scott Michel2009-01-266-70/+75
| | | | | | | - Update DWARF debugging support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63059 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the Dwarf macro information section optional; CellSPU's assemblerScott Michel2009-01-262-5/+10
| | | | | | | | doesn't support it. The default is set to 'true', so this should not impact any other target backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63058 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement Red Zone utilization on x86-64. This is currentlyDan Gohman2009-01-262-0/+19
| | | | | | | | disabled by default; I'll enable it when I hook it up with the llvm-gcc flag which controls it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63056 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r63025 and r63026, with fixes for the failing testcases.Owen Anderson2009-01-261-356/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63049 91177308-0d34-0410-b5e6-96231b3b80d8
* 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". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63048 91177308-0d34-0410-b5e6-96231b3b80d8
* Add method raw_fd_ostream::seek() for random access within a file.Ted Kremenek2009-01-261-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63044 91177308-0d34-0410-b5e6-96231b3b80d8
* Also revert r63206Bill Wendling2009-01-261-0/+321
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63041 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily revert r63025 until the testsuite failures can be fixed.Bill Wendling2009-01-261-12/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63040 91177308-0d34-0410-b5e6-96231b3b80d8
* During bittest switch lowering emit shift in the test block, which should ↵Anton Korobeynikov2009-01-261-11/+9
| | | | | | | | (theoretically) allow us to generate more efficient code. We don't do this now though :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63027 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of a bunch of dead code now that interval reconstruction is enabled.Owen Anderson2009-01-261-321/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63026 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an issue where LiveIntervals was trying to be smart about removing killOwen Anderson2009-01-261-34/+12
| | | | | | | | | | markers, and ended up foiling the interval reconstruction. This allows us to turn on reconstruction in the pre alloc splitter, which fixes a number of miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63025 91177308-0d34-0410-b5e6-96231b3b80d8
* Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside ↵Evan Cheng2009-01-261-8/+27
| | | | | | callseq_start to allow it to be folded into a call. It was not considering the cases where a token factor is between the load and the callseq_start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63022 91177308-0d34-0410-b5e6-96231b3b80d8
* Silence a bogus compiler warning.Evan Cheng2009-01-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63021 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually source file has already been uniquified into an id during isel. ↵Evan Cheng2009-01-261-15/+3
| | | | | | Eliminate the StringMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63009 91177308-0d34-0410-b5e6-96231b3b80d8
* Add data structure to define and track debug location during codegen.Evan Cheng2009-01-261-0/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63008 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed optimization of combining two shuffles where the first shuffle inputsMon P Wang2009-01-261-1/+3
| | | | | | | has a different number of elements than the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62998 91177308-0d34-0410-b5e6-96231b3b80d8
* Take the next steps in making SDUse more consistent with LLVM Use, andDan Gohman2009-01-264-88/+77
| | | | | | | | | | | | | | | | | | tidy up SDUse and related code. - Replace the operator= member functions with a set method, like LLVM Use has, and variants setInitial and setNode, which take care up updating use lists, like LLVM Use's does. This simplifies code that calls these functions. - getSDValue() is renamed to get(), as in LLVM Use, though most places can either use the implicit conversion to SDValue or the convenience functions instead. - Fix some more node vs. value terminology issues. Also, eliminate the one remaining use of SDOperandPtr, and SDOperandPtr itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62995 91177308-0d34-0410-b5e6-96231b3b80d8
* Untabify code.Scott Michel2009-01-266-49/+49
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62991 91177308-0d34-0410-b5e6-96231b3b80d8