425b76c2314ff7ee7ad507011bdda1988ae481ef |
|
06-Aug-2013 |
Tom Stellard <thomas.stellard@amd.com> |
TargetLowering: Add getVectorIdxTy() function v2 This virtual function can be implemented by targets to specify the type to use for the index operand of INSERT_VECTOR_ELT, EXTRACT_VECTOR_ELT, INSERT_SUBVECTOR, EXTRACT_SUBVECTOR. The default implementation returns the result from TargetLowering::getPointerTy() The previous code was using TargetLowering::getPointerTy() for vector indices, because this is guaranteed to be legal on all targets. However, using TargetLowering::getPointerTy() can be a problem for targets with pointer sizes that differ across address spaces. On such targets, when vectors need to be loaded or stored to an address space other than the default 'zero' address space (which is the address space assumed by TargetLowering::getPointerTy()), having an index that is a different size than the pointer can lead to inefficient pointer calculations, (e.g. 64-bit adds for a 32-bit address space). There is no intended functionality change with this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a0ec3f9b7b826b9b40b80199923b664bad808cce |
|
14-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
155615d7dc4e4fbfd3b7273720a76356468edf46 |
|
08-Jul-2013 |
Stephen Lin <stephenwlin@gmail.com> |
Remove trailing whitespace from SelectionDAG/*.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f22fd3f7b557a967b1edc1fa9ae770006a39e97c |
|
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ba54bca472a15d0657e1b88776f7069042b60b4e |
|
19-Jun-2013 |
Bill Wendling <isanbard@gmail.com> |
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dd0fb018a7cd2214c7bc5c6c767f626f99b47ba9 |
|
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 3/4. Remove the old IR ordering mechanism and switch to new one. Fix unit test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ac6d9bec671252dd1e596fa71180ff6b39d06b5d |
|
25-May-2013 |
Andrew Trick <atrick@apple.com> |
Track IR ordering of SelectionDAG nodes 2/4. Change SelectionDAG::getXXXNode() interfaces as well as call sites of these functions to pass in SDLoc instead of DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
58dcd200b7f0ea01160b6159e0363cc96b1b83d9 |
|
10-May-2013 |
Owen Anderson <resistor@mac.com> |
Teach SelectionDAG to constant fold all-constant FMA nodes the same way that it constant folds FADD, FMUL, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c332dbd30d9398ed25b30c3080506f7b8e92290 |
|
05-May-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add ArrayRef constructor from None, and do the cleanups that this constructor enables Patch by Robert Wilhelm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
02066838b5cdf17277267e79ffbc9459a58cdd59 |
|
25-Apr-2013 |
Silviu Baranga <silviu.baranga@arm.com> |
Fix constant folding for one lane vector types. Constant folding one lane vector types not returns a vector instead of a scalar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2a8bea7a8eba9bfa05dcc7a87e9152a0043841b2 |
|
20-Apr-2013 |
Michael Liao <michael.liao@intel.com> |
ArrayRefize getMachineNode(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7745175be32cd54e4aa6c9cce6f642f59a34a80f |
|
20-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
When computing the demanded bits of Load SDNodes, make sure that we are looking at the loaded-value operand and not the ptr result (in case of pre-inc loads). rdar://13348420 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3853f74aba301ef08b699bac2fa8e53230714a58 |
|
07-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ArrayRefize some code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a6b20ced765b67a85d9219d0c8547fc9c133e14f |
|
01-Mar-2013 |
Michael Liao <michael.liao@intel.com> |
Fix PR10475 - ISD::SHL/SRL/SRA must have either both scalar or both vector operands but TLI.getShiftAmountTy() so far only return scalar type. As a result, backend logic assuming that breaks. - Rename the original TLI.getShiftAmountTy() to TLI.getScalarShiftAmountTy() and re-define TLI.getShiftAmountTy() to return target-specificed scalar type or the same vector type as the 1st operand. - Fix most TICG logic assuming TLI.getShiftAmountTy() a simple scalar type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7e6ffac9ab0af2a54036c978822ad40492246622 |
|
25-Feb-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Fix spelling noticed by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
af23f8e403d68e3f96eb5eb63e50e3aec4ea01c9 |
|
25-Feb-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Fix the root cause of PR15348 by correctly handling alignment 0 on memory intrinsics in the SDAG builder. When alignment is zero, the lang ref says that *no* alignment assumptions can be made. This is the exact opposite of the internal API contracts of the DAG where alignment 0 indicates that the alignment can be made to be anything desired. There is another, more explicit alignment that is better suited for the role of "no alignment at all": an alignment of 1. Map the intrinsic alignment to this early so that we don't end up generating aligned DAGs. It is really terrifying that we've never seen this before, but we suddenly started generating a large number of alignment 0 memcpys due to the new code to do memcpy-based copying of POD class members. That patch contains a bug that rounds bitfield alignments down when they are the first field. This can in turn produce zero alignments. This fixes weird crashes I've seen in library users of LLVM on 32-bit hosts, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ad4da0fc321230261b4d0387f0ec216eb8aa50ca |
|
20-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move the SplatByte helper to APInt and generalize it a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4969310052f45b1e2e5d21735e38641a20be0e21 |
|
04-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
SelectionDAG: Teach FoldConstantArithmetic how to deal with vectors. This required disabling a PowerPC optimization that did the following: input: x = BUILD_VECTOR <i32 16, i32 16, i32 16, i32 16> lowered to: tmp = BUILD_VECTOR <i32 8, i32 8, i32 8, i32 8> x = ADD tmp, tmp The add now gets folded immediately and we're back at the BUILD_VECTOR we started from. I don't see a way to fix this currently so I left it disabled for now. Fix some trivially foldable X86 tests too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2d95e43fd877f81f419485baed3bd559de55e4c4 |
|
31-Jan-2013 |
Lang Hames <lhames@gmail.com> |
When lowering memcpys to loads and stores, make sure we don't promote alignments past the natural stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0a29cb045444c13160e90fe7942a9d7c720185ed |
|
22-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Make APFloat constructor require explicit semantics. Previously we tried to infer it from the bit width size, with an added IsIEEE argument for the PPC/IEEE 128-bit case, which had a default value. This default value allowed bugs to creep in, where it was inappropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0c8607ba6a21578996a7532b9390afba13bd2087 |
|
20-Jan-2013 |
Nadav Rotem <nrotem@apple.com> |
Revert 172708. The optimization handles esoteric cases but adds a lot of complexity both to the X86 backend and to other backends. This optimization disables an important canonicalization of chains of SEXT nodes and makes SEXT and ZEXT asymmetrical. Disabling the canonicalization of consecutive SEXT nodes into a single node disables other DAG optimizations that assume that there is only one SEXT node. The AVX mask optimizations is one example. Additionally this optimization does not update the cost model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6c327f92a562d9d280bdbc3bde3c0ce269a4c65c |
|
17-Jan-2013 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
Optimization for the following SIGN_EXTEND pairs: v8i8 -> v8i64, v8i8 -> v8i32, v4i8 -> v4i64, v4i16 -> v4i64 for AVX and AVX2. Bug 14865. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4ff23d09fa49d4ad68b4613114a743771df21df3 |
|
10-Jan-2013 |
Evan Cheng <evan.cheng@apple.com> |
PR14896: Handle memcpy from constant string where the memcpy size is larger than the string size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
be04929f7fd76a921540e9901f24563e51dc1219 |
|
07-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move TargetTransformInfo to live under the Analysis library. This no longer would violate any dependency layering and it is in fact an analysis. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e4b4edd72ae596ac8d1fdbc6e77f61e331f6775d |
|
05-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Funnel the actual TargetTransformInfo pass from the SelectionDAGISel pass into the SelectionDAG itself rather than snooping on the implementation of that pass as exposed by the TargetMachine. This removes the last direct client of the ScalarTargetTransformInfo class outside of the TTI pass implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
58a2cbef4aac9ee7d530dfb690c78d6fc11a2371 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Resort the #include lines in include/... and lib/... with the utils/sort_includes.py script. Most of these are updating the new R600 target and fixing up a few regressions that have creeped in since the last time I sorted the includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6eb7a4270bc411342f459bc574f8fe4ef5eeff28 |
|
30-Dec-2012 |
Hal Finkel <hfinkel@anl.gov> |
Support ppcf128 in SelectionDAG::getConstantFP Fixes pr14751. Patch by Kai; Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
831737d329a727f53a1fb0572f7b7a8127208881 |
|
30-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the Function::getFnAttributes method in favor of using the AttributeSet directly. This is in preparation for removing the use of the 'Attribute' class as a collection of attributes. That will shift to the AttributeSet class instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
034b94b17006f51722886b0f2283fb6fb19aca1f |
|
19-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a16e49d56f6349c12da2b561da00c22e13eda09b |
|
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix a logic bug in inline expansion of memcpy / memset with an overlapping load / store pair. It's not legal to use a wider load than the size of the remaining bytes if it's the first pair of load / store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
946a3a9f22c967d5432eaab5fa464b91343477cd |
|
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Sorry about the churn. One more change to getOptimalMemOpType() hook. Did I mention the inline memcpy / memset expansion code is a mess? This patch split the ZeroOrLdSrc argument into two: IsMemset and ZeroMemset. The first indicates whether it is expanding a memset or a memcpy / memmove. The later is whether the memset is a memset of zero. It's totally possible (likely even) that targets may want to do different things for memcpy and memset of zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7d34267df63e23be1957f738de783c145febb7af |
|
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
- Rename isLegalMemOpType to isSafeMemOpType. "Legal" is a very overloade term. Also added more comments to explain why it is generally ok to return true. - Rename getOptimalMemOpType argument IsZeroVal to ZeroOrLdSrc. It's meant to be true for loaded source (memcpy) or zero constants (memset). The poor name choice is probably some kind of legacy issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
61f4dfe3693bf68b20748d82ac4dd9bf2f356699 |
|
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Avoid using lossy load / stores for memcpy / memset expansion. e.g. f64 load / store on non-SSE2 x86 targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e07f85eb76a0254d3adbdf8b5d61ff5c07858cef |
|
12-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Replace TargetLowering::isIntImmLegal() with ScalarTargetTransformInfo::getIntImmCost() instead. "Legal" is a poorly defined term for something like integer immediate materialization. It is always possible to materialize an integer immediate. Whether to use it for memcpy expansion is more a "cost" conceern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
376642ed620ecae05b68c7bc81f79aeb2065abe0 |
|
11-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Some enhancements for memcpy / memset inline expansion. 1. Teach it to use overlapping unaligned load / store to copy / set the trailing bytes. e.g. On 86, use two pairs of movups / movaps for 17 - 31 byte copies. 2. Use f64 for memcpy / memset on targets where i64 is not legal but f64 is. e.g. x86 and ARM. 3. When memcpy from a constant string, do *not* replace the load with a constant if it's not possible to materialize an integer immediate with a single instruction (required a new target hook: TLI.isIntImmLegal()). 4. Use unaligned load / stores more aggressively if target hooks indicates they are "fast". 5. Update ARM target hooks to use unaligned load / stores. e.g. vld1.8 / vst1.8. Also increase the threshold to something reasonable (8 for memset, 4 pairs for memcpy). This significantly improves Dhrystone, up to 50% on ARM iOS devices. rdar://12760078 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2766a47310b05228e9bbc536d9f3a593fc31cd12 |
|
06-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Replace r169459 with something safer. Rather than having computeMaskedBits to understand target implementation of any_extend / extload, just generate zero_extend in place of any_extend for liveouts when the target knows the zero_extend will be implicit (e.g. ARM ldrb / ldrh) or folded (e.g. x86 movz). rdar://12771555 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a7186dbc2df4879f511b2ae6f2bce25ad37d965 |
|
06-Dec-2012 |
Evan Cheng <evan.cheng@apple.com> |
Let targets provide hooks that compute known zero and ones for any_extend and extload's. If they are implemented as zero-extend, or implicitly zero-extend, then this can enable more demanded bits optimizations. e.g. define void @foo(i16* %ptr, i32 %a) nounwind { entry: %tmp1 = icmp ult i32 %a, 100 br i1 %tmp1, label %bb1, label %bb2 bb1: %tmp2 = load i16* %ptr, align 2 br label %bb2 bb2: %tmp3 = phi i16 [ 0, %entry ], [ %tmp2, %bb1 ] %cmp = icmp ult i16 %tmp3, 24 br i1 %cmp, label %bb3, label %exit bb3: call void @bar() nounwind br label %exit exit: ret void } This compiles to the followings before: push {lr} mov r2, #0 cmp r1, #99 bhi LBB0_2 @ BB#1: @ %bb1 ldrh r2, [r0] LBB0_2: @ %bb2 uxth r0, r2 cmp r0, #23 bhi LBB0_4 @ BB#3: @ %bb3 bl _bar LBB0_4: @ %exit pop {lr} bx lr The uxth is not needed since ldrh implicitly zero-extend the high bits. With this change it's eliminated. rdar://12771555 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
426c2bf5cdd2173e4a33aea8cb92cf684a724f4b |
|
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the majority of the next patch in the address space series: r165941: Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. Despite this commit log, this change primarily changed stuff outside of VMCore, and those changes do not carry any tests for correctness (or even plausibility), and we have consistently found questionable or flat out incorrect cases in these changes. Most of them are probably correct, but we need to devise a system that makes it more clear when we have handled the address space concerns correctly, and ideally each pass that gets updated would receive an accompanying test case that exercises that pass specificaly w.r.t. alternate address spaces. However, from this commit, I have retained the new C API entry points. Those were an orthogonal change that probably should have been split apart, but they seem entirely good. In several places the changes were very obvious cleanups with no actual multiple address space code added; these I have not reverted when I spotted them. In a few other places there were merge conflicts due to a cleaner solution being implemented later, often not using address spaces at all. In those cases, I've preserved the new code which isn't address space dependent. This is part of my ongoing effort to clean out the partial address space code which carries high risk and low test coverage, and not likely to be finished before the 3.2 release looms closer. Duncan and I would both like to see the above issues addressed before we return to these changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ece6c6bb6329748b92403c06ac87f45c43485911 |
|
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the series of commits starting with r166578 which introduced the getIntPtrType support for multiple address spaces via a pointer type, and also introduced a crasher bug in the constant folder reported in PR14233. These commits also contained several problems that should really be addressed before they are re-committed. I have avoided reverting various cleanups to the DataLayout APIs that are reasonable to have moving forward in order to reduce the amount of churn, and minimize the number of commits that were reverted. I've also manually updated merge conflicts and manually arranged for the getIntPtrType function to stay in DataLayout and to be defined in a plausible way after this revert. Thanks to Duncan for working through this exact strategy with me, and Nick Lewycky for tracking down the really annoying crasher this triggered. (Test case to follow in its own commit.) After discussing with Duncan extensively, and based on a note from Micah, I'm going to continue to back out some more of the more problematic patches in this series in order to ensure we go into the LLVM 3.2 branch with a reasonable story here. I'll send a note to llvmdev explaining what's going on and why. Summary of reverted revisions: r166634: Fix a compiler warning with an unused variable. r166607: Add some cleanup to the DataLayout changes requested by Chandler. r166596: Revert "Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! r166591: Delete a directory that wasn't supposed to be checked in yet. r166578: Add in support for getIntPtrType to get the pointer type based on the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e669c930a61dd56891df2f9822966ecb173c8072 |
|
29-Oct-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
In various places throughout the code generator, there were special checks to avoid performing compile-time arithmetic on PPCDoubleDouble. Now that APFloat supports arithmetic on PPCDoubleDouble, those checks are no longer needed, and we can treat the type like any other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aa76e9e2cf50af190de90bc778b7f7e42ef9ceff |
|
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in support for getIntPtrType to get the pointer type based on the address space. This checkin also adds in some tests that utilize these paths and updates some of the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2c39b15073db81d93bb629303915b7d7e5d088dc |
|
15-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fb384d61c78b60787ed65475d8403aee65023962 |
|
11-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Revert 165732 for further review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f3840d2c16a4ec4c879a8ded402835746de380f8 |
|
11-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6765834754cbb3cb0f15b4b15e98c5e73fa50066 |
|
09-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Create enums for the different attributes. We use the enums to query whether an Attributes object has that attribute. The opaque layer is responsible for knowing where that specific attribute is stored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
554c6762e8cbc0a2fd6b61201254ba37df57e8db |
|
30-Sep-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use dyn_cast instead of isa and cast. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
94c22716d60ff5edf6a98a3c67e0faa001be1142 |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7e2c793a2b5c746344652b6579e958ee42fafdcc |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo 'iff' => 'if' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2c189061184925c6a8ecbb5a19e648b230a41c0e |
|
26-Sep-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the `hasFnAttr' method from Function. The hasFnAttr method has been replaced by querying the Attributes explicitly. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6c7ccaa3fd1d6e96d0bf922554b09d2b17c3b0e3 |
|
12-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Fix PR11985 - BlockAddress has no support of BA + offset form and there is no way to propagate that offset into machine operand; - Add BA + offset support and a new interface 'getTargetBlockAddress' to simplify target block address forming; - All targets are modified to use new interface and X86 backend is enhanced to support BA + offset addressing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
789efbad2a7b2c7693a3aee7b6d08806c361538f |
|
12-Sep-2012 |
Kristof Beyls <kristof.beyls@arm.com> |
Fix constant folding through bitcasts by no longer relying on undefined behaviour (converting NaN values between float and double). SelectionDAG::getConstantFP(double Val, EVT VT, bool isTarget); should not be used when Val is not a simple constant (as the comment in SelectionDAG.h indicates). This patch avoids using this function when folding an unknown constant through a bitcast, where it cannot be guaranteed that Val will be a simple constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
10def396cba31bc2358a92bc5d714fceb17cbbd3 |
|
10-Sep-2012 |
Michael Ilseman <milseman@apple.com> |
Fold multiply by 0 or 1 when in UnsafeFPMath mode in SelectionDAG::getNode(). This folding happens as early as possible for performance reasons, and to make sure it isn't foiled by other transforms (e.g. forming FMAs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
06b9690463e994e026d529701b19cb8e970b5c62 |
|
10-Sep-2012 |
Michael Ilseman <milseman@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8cd08bf4ac67b9d711fd1f72e6f5e00425d8c6ad |
|
10-Sep-2012 |
James Molloy <james.molloy@arm.com> |
Fix an assertion failure when optimising a shufflevector incorrectly into concat_vectors, and a followup bug with SelectionDAG::getNode() creating nodes with invalid types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c05d30601ced172b55be81bb529df6be91d6ae15 |
|
06-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
36d29bc72345d882623b001c2692b9246a19688a |
|
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove extra MayLoad/MayStore flags from atomic_load/store. These extra flags are not required to properly order the atomic load/store instructions. SelectionDAGBuilder chains atomics as if they were volatile, and SelectionDAG::getAtomic() sets the isVolatile bit on the memory operands of all atomic operations. The volatile bit is enough to order atomic loads and stores during and after SelectionDAG. This means we set mayLoad on atomic_load, mayStore on atomic_store, and mayLoad+mayStore on the remaining atomic read-modify-write operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1144af3c9b4da48cd581156e05b24261c8de366a |
|
25-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix integer undefined behavior due to signed left shift overflow in LLVM. Reviewed offline by chandlerc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7c626d30974c632ab500171ff185a24bcf2603bf |
|
14-Aug-2012 |
Owen Anderson <resistor@mac.com> |
Add a roundToIntegral method to APFloat, which can be parameterized over various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
74500bdba3eae36a1a8a17d8bad0b971b9c212ec |
|
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SelectionDAG::getTargetIndex. This adds support for TargetIndex operands during isel. The meaning of these (index, offset, flags) operands is entirely defined by the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
32ecfb41585d377c25c30aa4260cf007c1b0d5ce |
|
30-Jul-2012 |
Pete Cooper <peter_cooper@apple.com> |
Consider address spaces for hashing and CSEing DAG nodes. Otherwise two loads from different x86 segments but the same address would get CSEd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b26e2916c937d03bc2d7e273b2df4ffccdb061b4 |
|
19-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace some explicit compare loops with std::equal. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7ee0e5ae6093dba18ecc5eaafb91e8fa82f4c409 |
|
16-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Make ComputeDemandedBits return a deterministic result when computing an AssertZext value. In the added testcase the constant 55 was behind an AssertZext of type i1, and ComputeDemandedBits reported that some of the bits were both known to be one and known to be zero. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b87bdac6a3de4ab83e23bf808f990e4bb7eade5e |
|
15-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
Refactor the code that checks that all operands of a node are UNDEFs. Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs. Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0bcbd1df7a204e1e512f1a27066d725309de1b13 |
|
28-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d2ea0e10cbd158c93fb870cdd03001b9cd1156b8 |
|
25-May-2012 |
Justin Holewinski <jholewinski@nvidia.com> |
Change interface for TargetLowering::LowerCallTo and TargetLowering::LowerCall to pass around a struct instead of a large set of individual values. This cleans up the interface and allows more information to be added to the struct for future targets without requiring changes to each and every target. NV_CONTRIB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f496deaa03cec32887f2365ff27b5f0adfd9d256 |
|
21-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ce00b440f5d754aaf7196255bc139ce64c260e00 |
|
02-May-2012 |
Jakub Staszak <kubastaszak@gmail.com> |
Use dyn_cast instead of checking opcode and cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bc7d448f242b1bbc1031fb87cd69c285ff9aaffa |
|
21-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Register DAGUpdateListeners with SelectionDAG. Instead of passing listener pointers to RAUW, let SelectionDAG itself keep a linked list of interested listeners. This makes it possible to have multiple listeners active at once, like RAUWUpdateListener was already doing. It also makes it possible to register listeners up the call stack without controlling all RAUW calls below. DAGUpdateListener uses an RAII pattern to add itself to the SelectionDAG list of active listeners. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
06886aaaebe38b7e4b253b336624c9a7ab6dbc44 |
|
11-Apr-2012 |
Owen Anderson <resistor@mac.com> |
Move the constant-folding support for FP_ROUND in SelectionDAG from the one-operand version of getNode() to the two-operand version, since it became a two-operand node at sound point. Zap a testcase that this allows us to completely fold away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d7484e5d9b25fe907cdad283659fcdeb5c73060f |
|
05-Apr-2012 |
Owen Anderson <resistor@mac.com> |
Treat f16 the same as f80/f128 for the purposes of generating constants during instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
26c8dcc692fb2addd475446cfff24d6a4e958bca |
|
04-Apr-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Always compute all the bits in ComputeMaskedBits. This allows us to keep passing reduced masks to SimplifyDemandedBits, but know about all the bits if SimplifyDemandedBits fails. This allows instcombine to simplify cases like the one in the included testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
95d594cac3737ae1594a391276942a443cac426b |
|
31-Mar-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Teach CodeGen's version of computeMaskedBits to understand the range metadata. This is the CodeGen equivalent of r153747. I tested that there is not noticeable performance difference with any combination of -O0/-O2 /-g when compiling gcc as a single compilation unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
331ff3b1d1a08b4a39cea7cdc0c9a8567a5ba1b4 |
|
21-Mar-2012 |
Jim Grosbach <grosbach@apple.com> |
Checking a build_vector for an all-ones value. Type legalization can zero-extend the elements of the build_vector node, so, for example, we may have an <8 x i8> with i32 elements of value 255. That should return 'true' for the vector being all ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b99ea7cb3fe8af46bdc2ad68550632f5c16bdaa9 |
|
16-Mar-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r152613 (and r152614), "Inline the d'tor and add an anchor instead." for workaround of g++-4.4's miscompilation. It caused MSP430DAGToDAGISel::SelectIndexedBinOp() to be miscompiled. When two ReplaceUses()'s are expanded as inline, vtable in base class is stored to latter (ISelUpdater)ISU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7d6fc212c2c9c363ed3166966b1db14710325c5c |
|
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Add a return type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bf565702dcffb57a96612b529b68b4375244084f |
|
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Inline the d'tor and add an anchor instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
091306099d7aaf8d68c3c5f44cdaf3e3e91d9f77 |
|
13-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Refactor the SelectionDAG's 'dump' methods into their own .cpp file. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4bfcd4acbc7d12aa55f8de9af84a38422f0f6d83 |
|
28-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit r151623 with fix. Only issue special no-return calls if it's a direct call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
20bd5296cec8d8d597ab9db2aca7346a88e580c8 |
|
28-Feb-2012 |
Daniel Dunbar <daniel@zuster.org> |
Revert r151623 "Some ARM implementaions, e.g. A-series, does return stack prediction. ...", it is breaking the Clang build during the Compiler-RT part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ec52aaa12f57896fc806e849fa21a61603050ac4 |
|
28-Feb-2012 |
Evan Cheng <evan.cheng@apple.com> |
Some ARM implementaions, e.g. A-series, does return stack prediction. That is, the processor keeps a return addresses stack (RAS) which stores the address and the instruction execution state of the instruction after a function-call type branch instruction. Calling a "noreturn" function with normal call instructions (e.g. bl) can corrupt RAS and causes 100% return misprediction so LLVM should use a unconditional branch instead. i.e. mov lr, pc b _foo The "mov lr, pc" is issued in order to get proper backtrace. rdar://8979299 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c667ba69ac342563c0886e20509e68705d78a0a5 |
|
10-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Put instruction names into an indexed string table on the side, removing a pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5e25ee8a1fcf8288d00d731b0f7ab7976f33b123 |
|
05-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert assert(0) to llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
18c7f80b3e83ab584bd8572695a3cde8bafd9d3c |
|
05-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
reapply the patches reverted in r149470 that reenable ConstantDataArray, but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
91766fe066efe6e0969ba805a2e3726a70ed34a3 |
|
01-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert Chris' commits up to r149348 that started causing VMCoreTests unit test to fail. These are: r149348 r149351 r149352 r149354 r149356 r149357 r149361 r149362 r149364 r149365 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f0e1053a63f5522ecfe1df8fe3ea07b24cb6b193 |
|
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
remove the last vestiges of llvm::GetConstantStringInfo, in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4a6facbc574c37ec81380d31d8f1372ea10ebf29 |
|
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
rework this logic to not depend on the last argument to GetConstantStringInfo, which is going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 |
|
20-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
More dead code removal (using -Wunreachable-code) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9cf37e8b48732fccd4c301ed51aafed7074bd84e |
|
19-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a RegisterMaskSDNode class. This SelectionDAG node will be attached to call nodes by LowerCall(), and eventually becomes a MO_RegisterMask MachineOperand on the MachineInstr representing the call instruction. LowerCall() will attach a register mask that depends on the calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
799ea5ccc0a1d6b00f45191855056fb07cd641bc |
|
15-Jan-2012 |
Craig Topper <craig.topper@gmail.com> |
Truncate of undef is just undef of smaller size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0508d047fefef36d4f943ee13c82c18cf3a943ab |
|
15-Dec-2011 |
Devang Patel <dpatel@apple.com> |
Update DebugLoc while merging nodes at -O0. Patch by Kyriakos Georgiou! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e08db65c48854748612ba69ee1e50e8d1b2cf43d |
|
14-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add missing cases to SDNode::getOperationName(). Patch by Micah Villmow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
63974b2144c87c962effdc0508c27643c8ad98b6 |
|
13-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Initial CodeGen support for CTTZ/CTLZ where a zero input produces an undefined result. This adds new ISD nodes for the new semantics, selecting them when the LLVM intrinsic indicates that the undef behavior is desired. The new nodes expand trivially to the old nodes, so targets don't actually need to do anything to support these new nodes besides indicating that they should be expanded. I've done this for all the operand types that I could figure out for all the targets. Owners of various targets, please review and let me know if any of these are incorrect. Note that the expand behavior is *conservatively correct*, and exactly matches LLVM's current behavior with these operations. Ideally this patch will not change behavior in any way. For example the regtest suite finds the exact same instruction sequences coming out of the code generator. That's why there are no new tests here -- all of this is being exercised by the existing test suite. Thanks to Duncan Sands for reviewing the various bits of this patch and helping me get the wrinkles ironed out with expanding for each target. Also thanks to Chris for clarifying through all the discussions that this is indeed the approach he was looking for. That said, there are likely still rough spots. Further review much appreciated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 |
|
02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c4c2a024857ca92687728f573a3017091a79eaf4 |
|
28-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make SelectionDAG::InferPtrAlignment use llvm::ComputeMaskedBits instead of duplicating the logic for globals. Make llvm::ComputeMaskedBits handle GlobalVariables slightly more aggressively, to match what InferPtrAlignment knew how to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ed1c0c7f5817be939872b462be984534bd48bb9b |
|
28-Nov-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r145273 and fix in SelectionDAG::InferPtrAlignment() instead. Conservatively returns zero when the GV does not specify an alignment nor is it initialized. Previously it returns ABI alignment for type of the GV. However, if the type is a "packed" type, then the under-specified alignments is attached to the load / store instructions. In that case, the alignment of the type cannot be trusted. rdar://10464621 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c80383095e1fd6a5567a0126b3ee551df8a2aacd |
|
28-Nov-2011 |
Bill Wendling <isanbard@gmail.com> |
Remove dead llvm.eh.sjlj.dispatchsetup intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8c2e35269c10914c16f351449fb9b8108ccb2556 |
|
15-Nov-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove some unnecessary includes of PseudoSourceValue.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d752e0f7e64585839cb3a458ef52456eaebbea3c |
|
08-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added invariant field to the DAG.getLoad method and changed all calls. When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2efa35f779213a828fa15d6aa3a508fc81d75d73 |
|
08-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
65fd6564b8aedd053845c81ede1ac594acb470e4 |
|
03-Nov-2011 |
Dan Gohman <gohman@apple.com> |
Reapply r143206, with fixes. Disallow physical register lifetimes across calls, and only check for nested dependences on the special call-sequence-resource register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6f3ddef7c51f03945644ad0e69068dfb24d4b092 |
|
29-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Revert r143206, as there are still some failing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bf923b815d6da97367e3eedab69230918bf128a3 |
|
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Reapply r143177 and r143179 (reverting r143188), with scheduler fixes: Use a separate register, instead of SP, as the calling-convention resource, to avoid spurious conflicts with actual uses of SP. Also, fix unscheduling of calling sequences, which can be triggered by pseudo-two-address dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
62c1d00dfd38996f381edae55e1028b8e52a1107 |
|
28-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Speculatively disable Dan's commits 143177 and 143179 to see if it fixes the dragonegg self-host (it looks like gcc is miscompiled). Original commit messages: Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW on every node as it legalizes them. This makes it easier to use hasOneUse() heuristics, since unneeded nodes can be removed from the DAG earlier. Make LegalizeOps visit the DAG in an operands-last order. It previously used operands-first, because LegalizeTypes has to go operands-first, and LegalizeTypes used to be part of LegalizeOps, but they're now split. The operands-last order is more natural for several legalization tasks. For example, it allows lowering code for nodes with floating-point or vector constants to see those constants directly instead of seeing the lowered form (often constant-pool loads). This makes some things somewhat more complicated today, though it ought to allow things to be simpler in the future. It also fixes some bugs exposed by Legalizing using RAUW aggressively. Remove the part of LegalizeOps that attempted to patch up invalid chain operands on libcalls generated by LegalizeTypes, since it doesn't work with the new LegalizeOps traversal order. Instead, define what LegalizeTypes is doing to be correct, and transfer the responsibility of keeping calls from having overlapping calling sequences into the scheduler. Teach the scheduler to model callseq_begin/end pairs as having a physical register definition/use to prevent calls from having overlapping calling sequences. This is also somewhat complicated, though there are ways it might be simplified in the future. This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others. Please direct high-level questions about this patch to management. Delete #if 0 code accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2ba60e593012ba9b2a9d20b86733eadca288bcb2 |
|
28-Oct-2011 |
Dan Gohman <gohman@apple.com> |
Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW on every node as it legalizes them. This makes it easier to use hasOneUse() heuristics, since unneeded nodes can be removed from the DAG earlier. Make LegalizeOps visit the DAG in an operands-last order. It previously used operands-first, because LegalizeTypes has to go operands-first, and LegalizeTypes used to be part of LegalizeOps, but they're now split. The operands-last order is more natural for several legalization tasks. For example, it allows lowering code for nodes with floating-point or vector constants to see those constants directly instead of seeing the lowered form (often constant-pool loads). This makes some things somewhat more complicated today, though it ought to allow things to be simpler in the future. It also fixes some bugs exposed by Legalizing using RAUW aggressively. Remove the part of LegalizeOps that attempted to patch up invalid chain operands on libcalls generated by LegalizeTypes, since it doesn't work with the new LegalizeOps traversal order. Instead, define what LegalizeTypes is doing to be correct, and transfer the responsibility of keeping calls from having overlapping calling sequences into the scheduler. Teach the scheduler to model callseq_begin/end pairs as having a physical register definition/use to prevent calls from having overlapping calling sequences. This is also somewhat complicated, though there are ways it might be simplified in the future. This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others. Please direct high-level questions about this patch to management. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
15701f8969fcb36899a75ca2df6fdcbc52141106 |
|
27-Oct-2011 |
Lang Hames <lhames@gmail.com> |
Rename NonScalarIntSafe to something more appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
17001ce25cc205ac1cd2604492c2bce310964220 |
|
18-Oct-2011 |
Duncan Sands <baldrick@free.fr> |
Fix a bunch of unused variable warnings when doing a release build with gcc-4.6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
962bad70f4277841cf6278306caa93ebce304b48 |
|
16-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Let printf do the formatting instead aligning strings ourselves. While at it, merge some format strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5ba7b501fd4b88e3fea590499e9464b4b2c153a4 |
|
12-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e09b2a0d4964e6a34ea6393e94a9f5a76ba56f1a |
|
01-Oct-2011 |
Bill Wendling <isanbard@gmail.com> |
When inferring the pointer alignment, if the global doesn't have an initializer and the alignment is 0 (i.e., it's defined globally in one file and declared in another file) it could get an alignment which is larger than the ABI allows for that type, resulting in aligned moves being used for unaligned loads. For instance, in file A.c: struct S s; In file B.c: struct { // something long }; extern S s; void foo() { struct S p = s; // ... } this copy is a 'memcpy' which is turned into a series of 'movaps' instructions on X86. But this is wrong, because 'struct S' has alignment of 4, not 16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5405d58e21402a8ba3aaaa580ca65155bee00443 |
|
27-Sep-2011 |
Jim Grosbach <grosbach@apple.com> |
Rename AddSelectionDAGCSEId() to addSelectionDAGCSEId(). Naming conventions consistency. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a3c42f3d4e5d14c8f4fb9bb123e7759c425d041b |
|
27-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Cleanup PromoteIntOp_EXTRACT_VECTOR_ELT and PromoteIntRes_SETCC. Add a new method: getAnyExtOrTrunc and use it to replace the manual check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aec5861bb6ace3734163c000cb75ca2e22e29caa |
|
13-Sep-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add vselect target support for targets that do not support blend but do support xor/and/or (For example SSE2). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9db817fd0ce0949d0358f5cedfd9ca5a9f1726dd |
|
09-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make the SelectionDAG verify that all the operands of BUILD_VECTOR have the same type. Teach DAGCombiner::visitINSERT_VECTOR_ELT not to make invalid BUILD_VECTORs. Fixes PR10897. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
981a010c095b8fb57422df6fb90b6d802082afc5 |
|
07-Sep-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Relax the MemOperands on atomics a bit. Fixes -verify-machineinstrs failures for atomic laod/store on ARM. (The fix for the related failures on x86 is going to be nastier because we actually need Acquire memoperands attached to the atomic load instrs, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
28b77e968d2b01fc9da724762bd8ddcd80650e32 |
|
06-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Add codegen support for vector select (in the IR this means a select with a vector condition); such selects become VSELECT codegen nodes. This patch also removes VSETCC codegen nodes, unifying them with SETCC nodes (codegen was actually often using SETCC for vector SETCC already). This ensures that various DAG combiner optimizations kick in for vector comparisons. Passes dragonegg bootstrap with no testsuite regressions (nightly testsuite as well as "make check-all"). Patch mostly by Nadav Rotem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4a544a79bd735967f1d33fe675ae4566dbd17813 |
|
06-Sep-2011 |
Duncan Sands <baldrick@free.fr> |
Split the init.trampoline intrinsic, which currently combines GCC's init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
327236cd6c211e54fc6288b0ac2b413901cc0611 |
|
24-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Basic x86 code generation for atomic load and store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6d1f5d951bab2222096210e76e6f7e18e88ae547 |
|
16-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Revert r137562 because it caused PR10674 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5cbba0167165c61deb8f3223143643083013f046 |
|
13-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fix PR 10635. When generating integer constants, the constant element type may be illegal, even if the requested vector type is legal. Testcase is one of the disabled ARM tests in the vector-select patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6cdc1f43e6a6dd7ba38a334b0b2f8fa70d4dc4cd |
|
02-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't create a ridiculous EXTRACT_ELEMENT. PR10563. The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
55ba816883842e793cdeb32fcb805c4e011b527f |
|
29-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be working on x86 (at least for trivial testcases); other architectures will need more work so that they actually emit the appropriate instructions for orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC, Mips, and Alpha backends need such changes.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
14648468011c92a4210f8118721d58c25043daf8 |
|
28-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Code generation for 'fence' instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ba292dbc2acee2d1052fb7ffe332e2164147b47 |
|
18-Jul-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity errors like the one corrected by r135261. Migrate all LLVM callers of the old constructor to the new one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aeb86fab3e875b6ffebea42f4f4dd3e7791ae365 |
|
14-Jul-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add assertion for the chain value type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
33390848a7eca75301d04a59b89b516d83e19ee0 |
|
08-Jul-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add an intrinsic and codegen support for fused multiply-accumulate. The intent is to use this for architectures that have a native FMA instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
944520f38c79f3cbf1abfca92a5414458d639029 |
|
07-Jul-2011 |
Lang Hames <lhames@gmail.com> |
Add functions 'hasPredecessor' and 'hasPredecessorHelper' to SDNode. The hasPredecessorHelper function allows predecessors to be cached to speed up repeated invocations. This fixes PR10186. X.isPredecessorOf(Y) now just calls Y.hasPredecessor(X) Y.hasPredecessor(X) calls Y.hasPredecessorHelper(X, Visited, Worklist) with empty Visited and Worklist sets (i.e. no caching over invocations). Y.hasPredecessorHelper(X, Visited, Worklist) caches search state in Visited and Worklist to speed up repeated calls. The Visited set is searched for X before going to the worklist to further search the DAG if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
882e1e1c5d157a8bb2f001f2f4cacf0f0dd722a3 |
|
07-Jul-2011 |
Eric Christopher <echristo@apple.com> |
Grammar and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
22a54c1cd711afccd4558374918d12a939e1cca5 |
|
18-Jun-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't allocate empty read-only SmallVectors during SelectionDAG deallocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8ec0c1c07b51d3332ac0d0fc4d643ba982803a18 |
|
24-May-2011 |
Devang Patel <dpatel@apple.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b5a55d979c84e100f383ce11c5c5e3b616b9dcc4 |
|
24-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Teach SelectionDAG::isKnownNeverZero to return true (op x, c) when c is non-zero. - Teach X86 cmov optimization to eliminate the cmov from ctlz, cttz extension when the source of X86ISD::BSR / X86ISD::BSF is proven to be non-zero. rdar://9490949 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9728ea2447e689ae6e884cf044f226b99c4a47da |
|
24-May-2011 |
Devang Patel <dpatel@apple.com> |
Revert 121907 (it causes llc crash) and apply original patch from PR9817. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
35b6994608b2b7c86714cc464dfb2d086b0cafca |
|
23-May-2011 |
Devang Patel <dpatel@apple.com> |
While replacing all uses of a SDValue with another value, do not forget to transfer SDDbgValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f7710af4ba78aa7a0cc9c226f334d8f2b6ab31bf |
|
03-May-2011 |
Owen Anderson <resistor@mac.com> |
Other parts of the SelectionDAG framework assume that targets use their pointer type for vector indices. Make the vector unrolling code respect that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bf34a5ec22389a852f25337eb767e5ad742e6142 |
|
15-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
sext(undef) = 0, because the top bits will all be the same. zext(undef) = 0, because the top bits will be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
34661e72fc0ae1a993db4cec953e999c61a7569c |
|
14-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
BIT_CONVERT has been renamed to BITCAST. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5ae1da96f2ac4a68543295f227398f8e93018eb0 |
|
14-Mar-2011 |
Evan Cheng <evan.cheng@apple.com> |
Minor optimization. sign-ext/anyext of undef is still undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6154f6c9292179fab6346ae8336f2ad790b52028 |
|
07-Mar-2011 |
Owen Anderson <resistor@mac.com> |
Use the correct LHS type when determining the legalization of a shift's RHS type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
254c63e33678a64eaadfd658b79ed362c8572147 |
|
03-Mar-2011 |
Bob Wilson <bob.wilson@apple.com> |
Avoid exponential blow-up when printing DAGs. David Greene changed CannotYetSelect() to print the full DAG including multiple copies of operands reached through different paths in the DAG. Unfortunately this blows up exponentially in some cases. The depth limit of 100 is way too high to prevent this -- I'm seeing a message string of 150MB with a depth of only 40 in one particularly bad case, even though the DAG has less than 200 nodes. Part of the problem is that the printing code is following chain operands, so if you fail to select an operation with a chain, the printer will follow all the chained operations back to the entry node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
95771afbfd604ad003fa3723cac66c9370fed55d |
|
25-Feb-2011 |
Owen Anderson <resistor@mac.com> |
Allow targets to specify a the type of the RHS of a shift parameterized on the type of the LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9b6af8de58140566a0e6567508bf906027422e7c |
|
24-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add a getNumSignBits() method to APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a778f5c798fc78ca15f813c362cdcdcc1eb86266 |
|
18-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1646953538d5faf7baf49e16bd0590f822c231de |
|
18-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Roll out r125794 to help diagnose the llvm-gcc-i386-linux-selfhost failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a4defc00ebf30f136ea96084b6a10c57441de6e7 |
|
18-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Do not lose debug info of an inlined function argument even if the argument is only used through GEPs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a901129169194881a78b7fd8953e09f55b846d10 |
|
16-Feb-2011 |
Stuart Hastings <stuart@apple.com> |
Swap VT and DebugLoc operands of getExtLoad() for consistency with other getNode() methods. Radar 9002173. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
463b3c2a9974acf7586d1e6a4416aa7cc004ff0e |
|
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
fix two comment thinkos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0a9481f44fe4fc76e59109992940a76b2a3f9b3b |
|
13-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Enhance ComputeMaskedBits to know that aligned frameindexes have their low bits set to zero. This allows us to optimize out explicit stack alignment code like in stack-align.ll:test4 when it is redundant. Doing this causes the code generator to start turning FI+cst into FI|cst all over the place, which is general goodness (that is the canonical form) except that various pieces of the code generator don't handle OR aggressively. Fix this by introducing a new SelectionDAG::isBaseWithConstantOffset predicate, and using it in places that are looking for ADD(X,CST). The ARM backend in particular was missing a lot of addressing mode folding opportunities around OR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e075118489baf15a7cea2e7f155b4799b93d6d02 |
|
13-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Revisit my fix for PR9028: the issue is that DAGCombine was generating i8 shift amounts for things like i1024 types. Add an assert in getNode to prevent this from occuring in the future, fix the buggy transformation, revert my previous patch, and document this gotcha in ISDOpcodes.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
480d1e3a67751c9c809e9ce047ad7e4b23bab9f1 |
|
07-Feb-2011 |
Devang Patel <dpatel@apple.com> |
Remove comment about an argument that was removed couple of years ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9a14a362d0388da3b7a9b866d23f09f6fe080a29 |
|
01-Feb-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Take Bill Wendling's suggestion for structuring a couple of asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7e7fc1052afa9a7b5bcc94d50bc5f0403a6e7470 |
|
27-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Speculatively revert r124380. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bfae5f312c5a726687b4f2201681fb5519568e14 |
|
27-Jan-2011 |
Devang Patel <dpatel@apple.com> |
While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes. Take 2. This includes fix for dragonegg crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4789aca85eb783865c0a763352a7585fa6f65248 |
|
27-Jan-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Try harder to not have unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a8af137847c07ae01a7bd7a3e7e11cbd449e823c |
|
27-Jan-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Opt-mode -Wunused-variable cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cfe33c46aa50f04adb0431243e7d25f79b719ac6 |
|
26-Jan-2011 |
David Greene <greened@obbligato.org> |
[AVX] Add INSERT_SUBVECTOR and support it on x86. This provides a default implementation for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VINSERTF128 if AVX is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
91585098eff1f0acdefa2667e091742b60dcbf15 |
|
26-Jan-2011 |
David Greene <greened@obbligato.org> |
[AVX] Support EXTRACT_SUBVECTOR on x86. This provides a default implementation of EXTRACT_SUBVECTOR for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VEXTRACTF128 if AVX is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a2e868d34ccfed46310e98338ded6a74b2b01308 |
|
26-Jan-2011 |
Devang Patel <dpatel@apple.com> |
Provide an interface to transfer SDDbgValue from one SDNode to another. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
584520e8e2c1f8cc04bc8dd4dc4ea6c390627317 |
|
23-Jan-2011 |
Ted Kremenek <kremenek@apple.com> |
Null initialize a few variables flagged by clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
16c29b5f285f375be53dabaa73e3e91107485fe4 |
|
10-Jan-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4314268128be6d54c9a7f0709680e5a5b40f3ab3 |
|
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance. Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0521928ae7cc492f3f45ef0e0cedc349102489c5 |
|
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-implement r122936 with proper target hooks. Now getMaxStoresPerMemcpy etc. takes an option OptSize. If OptSize is true, it would return the inline limit for functions with attribute OptSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
255874ff521bb81b294ec861a5d9a99d8198448c |
|
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Revert r122936. I'll re-implement the change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9a9d847afaf5df1b66b0f92692e31d1d4003c3a9 |
|
06-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
r105228 reduced the memcpy / memset inline limit to 4 with -Os to avoid blowing up freebsd bootloader. However, this doesn't make much sense for Darwin, whose -Os is meant to optimize for size only if it doesn't hurt performance. rdar://8821501 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
80220369b040dd9769e4c4b65d2d018210c3b240 |
|
02-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Try to reuse the value when lowering memset. This allows us to compile: void test(char *s, int a) { __builtin_memset(s, a, 15); } into 1 mul + 3 stores instead of 3 muls + 3 stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8c06aa1c597bb5c2c264a190bc35836f0a7b4cd5 |
|
02-Jan-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Lower the i8 extension in memset to a multiply instead of a potentially long series of shifts and ors. We could implement a DAGCombine to turn x * 0x0101 back into logic operations on targets that doesn't support the multiply or it is slow (p4) if someone cares enough. Example code: void test(char *s, int a) { __builtin_memset(s, a, 4); } before: _test: ## @test movzbl 8(%esp), %eax movl %eax, %ecx shll $8, %ecx orl %eax, %ecx movl %ecx, %eax shll $16, %eax orl %ecx, %eax movl 4(%esp), %ecx movl %eax, 4(%ecx) movl %eax, (%ecx) ret after: _test: ## @test movzbl 8(%esp), %eax imull $16843009, %eax, %eax ## imm = 0x1010101 movl 4(%esp), %ecx movl %eax, 4(%ecx) movl %eax, (%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f1b4eafbfec976f939ec0ea3e8acf91cef5363e3 |
|
21-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for something that just glues two nodes together, even if it is sometimes used for flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
da60588402e8913f5b7ec40945d4170d0c4ffaf5 |
|
19-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
teach MaskedValueIsZero how to analyze ADDE. This is enough to teach it that ADDE(0,0) is known 0 except the low bit, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a30b7d2c707b5720691f7aea0652e37bd333d3af |
|
12-Dec-2010 |
Duncan Sands <baldrick@free.fr> |
Catch attempts to remove a deleted node from the CSE maps. Better to catch this here rather than later after accessing uninitialized memory etc. Fires when compiling the testcase in PR8237. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
40f8f6264d5af2c38e797e0dc59827cd231e8ff7 |
|
07-Dec-2010 |
Jay Foad <jay.foad@gmail.com> |
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method trunc(), to be const and to return a new value instead of modifying the object in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3069cbf7b3ef9a31bbb8e434686b7259052c364a |
|
04-Dec-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unneeded zero arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7a874ddda037349184fbeb22838cc11a1a9bb78f |
|
01-Dec-2010 |
Jay Foad <jay.foad@gmail.com> |
PR5207: Rename overloaded APInt methods set(), clear(), flip() to setAllBits(), setBit(unsigned), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1f6efa3996dd1929fbc129203ce5009b620e6969 |
|
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bf17cfa3f904e488e898ac2e3af706fd1a892f08 |
|
23-Nov-2010 |
Wesley Peck <peckw@wesleypeck.com> |
Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ca136312abe3c41f3422e9de280b7be0dc65362 |
|
20-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence Release build warnings about unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
59d2dad59ebba1d82e5b72f78b7a5b2c873445d7 |
|
20-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
On X86, MEMBARRIER, MFENCE, SFENCE, LFENCE are not target memory intrinsics, so don't claim they are. They are allocated using DAG.getNode, so attempts to access MemSDNode fields results in reading off the end of the allocated memory. This fixes crashes with "llc -debug" due to debug code trying to print MemSDNode fields for these barrier nodes (since the crashes are not deterministic, use valgrind to see this). Add some nasty checking to try to catch this kind of thing in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cab98e3168558a40675a06bc830eb87b8e40070e |
|
19-Nov-2010 |
Mon P Wang <wangmp@apple.com> |
Make isScalarToVector to return false if the node is a scalar. This will prevent DAGCombine from making an illegal transformation of bitcast of a scalar to a vector into a scalar_to_vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b4ac2858dad1f6e892c8bfe981a6cf32e9a385f8 |
|
18-Nov-2010 |
Dale Johannesen <dalej@apple.com> |
Do not throw away alignment when generating the DAG for memset; we may need it to decide between MOVAPS and MOVUPS later. Adjust a test that was looking for wrong code. PR 3866 / 8675131. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
69300a2f47541a32cf453c857b2a6075c0c65632 |
|
05-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
When passing a parameter using the 'byval' mechanism, inline code needs to be used to perform the copy, which may be of lots of memory [*]. It would be good if the fall-back code generated something reasonable, i.e. did the copy in a loop, rather than vast numbers of loads and stores. Add a note about this. Currently target specific code seems to always kick in so this is more of a theoretical issue rather than a practical one now that X86 has been fixed. [*] It's amazing how often people pass mega-byte long arrays by copy... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cdfad36b401be6fc709ea4051f9de58e1a30bcc9 |
|
03-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Simplify uses of MVT and EVT. An MVT can be compared directly with a SimpleValueType, while an EVT supports equality and inequality comparisons with SimpleValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1de4aa904e9672abfc2e755d798c926d324e2d36 |
|
27-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Use a MemIntrinsicSDNode for ISD::PREFETCH, which touches memory, so a MachineMemOperand is useful (not propagated into the MachineInstr yet). No functional change except for dump output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f96e4bd2a3b11928af75fb7472288930d16fec0b |
|
20-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make CodeGen TBAA-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e4ad387a5a88dae20f0f7578e55170bbc8eee2a9 |
|
20-Oct-2010 |
Jim Grosbach <grosbach@apple.com> |
Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any setup they require. Use this for ARM/Darwin to rematerialize the base pointer from the frame pointer when required. rdar://8564268 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
84bd98ac7b9f9eaa0c4259b510847481a45844a7 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
finish pushing MachinePointerInfo through selectiondags. At this point, I think I've audited all uses, so it should be dependable for address spaces, and the pointer+offset info should also be accurate when there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
da2d8e1032eb4c2fefb1f647d7877910b9483835 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate an old SelectionDAG::getTruncStore method, propagating MachinePointerInfo around more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5cd9391a089d146d8a18ade602769502e5a8d36f |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
eliminate last SelectionDAG::getLoad old entrypoint, on to stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d0e139fa7409a009c416f2b0bcf4665f23ddca83 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix the code that infers SV info to be correct when dealing with an indexed load/store that has an offset in the index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3d6ccfba314ed38e4506dae2781a060e9a3e07ac |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
propagate MachinePointerInfo through various uses of the old SelectionDAG::getExtLoad overload, and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ecf42c4720aba6ee315d0166045c54187ac2de4d |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
continue MachinePointerInfo'izing, eliminating use of one of the old getLoad overloads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e72f2027e9116c55a5b39ac72732df8d6c45d37c |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
reimplement memcpy/memmove/memset lowering to use MachinePointerInfo instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c5cb2a1717f8e30b1849d7ec1cf269bc5d66877 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add overloads for SelectionDAG::getLoad, getStore, getTruncStore that take a MachinePointerInfo. Among other virtues, this doesn't silently truncate the svoffset to 32-bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e9ba5dd236f48708a00bd3bb0519148f943cc897 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
simplify interface to SelectionDAG::getMemIntrinsicNode, making it take a MachinePointerInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
60bddc8bcd787be645d2f3b64117fee884270e6a |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
chagne interface to SelectionDAG::getAtomic to take a MachinePointerInfo, eliminating some weird "infer a frame address" logic which was dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
93a95ae8a9d8eb19dc0d90281473be2fb1c05a17 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
force clients of MachineFunction::getMachineMemOperand to provide a MachinePointerInfo, propagating the type out a level of API. Remove the old MachineFunction::getMachineMemOperand impl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
14ac1dd2be4f72ae1e48a1fd1c2f9bedc7f980e2 |
|
18-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Invert the logic of reachesChainWithoutSideEffects(). What we want to check is that there is NO path to the destination containing side effects, not that SOME path contains no side effects. In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little to no branching, so "any" is effectively equivalent to "all". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2e46e78c53011ddbc0587135c09b39077beb0c1e |
|
31-Aug-2010 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
zap unused method. x86 is the only user and already has a more powerfull version git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ee56c42168f6c4271593f6018c4409b6a5910302 |
|
02-Aug-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Prefix `next' iterator operation with `llvm::'. Fixes potential ambiguity problems on VS 2010. Patch by nobled! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7c98283f0ef74a5663c4c4a0938a344b204336fd |
|
23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make SDNode::dump() print a newline at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
481c4c07347c40fa666d09f3b31fbe2ca27e2d52 |
|
22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
keep in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
60108e96bbc5432f4fe06ba313e64448e97a0e15 |
|
16-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Split -enable-finite-only-fp-math to two options: -enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bcc8017c738e92d9c1af221b11c4916cb524184e |
|
08-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0d881dabc1a4e1aefad6dd38de166d8358285638 |
|
07-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Propagate debug loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f2f490368797fff899e8025133f10c37e3a2ebe5 |
|
04-Jul-2010 |
Evan Cheng <evan.cheng@apple.com> |
Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
72d13ff755fe8484c89468252f945ba23fe98f71 |
|
26-Jun-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
When splitting a VAARG, remember its alignment. This produces terrible but correct code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b447c4e65b5f6d39db16cb8fc338133965291972 |
|
25-Jun-2010 |
Duncan Sands <baldrick@free.fr> |
Remove variables which are assigned to but for which the value is not used. Spotted by gcc-4.6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ee1c8707789ac540ca2d0037d397f39fa91e7571 |
|
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the other half of the BRCOND optimization, and update as many tests as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
102f3851bbde16fdd826d072240731365fe6da5d |
|
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate the first have of the optimization which eliminates BRCOND when the condition is constant. This optimization shouldn't be necessary, because codegen shouldn't be able to find dead control paths that the IR-level optimizer can't find. And it's undesirable, because it encourages bugpoint to leave "br i1 false" branches in its output. And it wasn't updating the CFG. I updated all the tests I could, but some tests are too reduced and I wasn't able to meaningfully preserve them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4e39e9da0f3a435445261d0f796bb0913f3c2bf0 |
|
24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r106634, now that the bug it exposed is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cbe762b5d165c565feb98b745e93b71d208a1e36 |
|
23-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
403a8cdda5e76ea689693de16474650b4b0df818 |
|
21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use A.append(...) instead of A.insert(A.end(), ...) when A is a SmallVector, and other SmallVector simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
27445f0375ae01652c08569c7843bddc95cedd61 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't replace the old Ordering object with a new one; just clear() the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c97df860dd8172077c9b3b086c192f1b05365699 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't call clear() on DbgInfo when it's going to be deleted anyway. Don't replace the old DbgInfo with a new one when clear() on the old one is sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
027657db7cf60bcbf40403496d7e4a170f9ce1ec |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Change UpdateNodeOperands' operand and return value from SDValue to SDNode *, since it doesn't care about the ResNo value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106282 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a7f7426eeb18fef58c3471db23fc829b67bc350 |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass, which is faster, simpler, and less surprising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9e86a735682f3f62ff79291b4673e00cf5f2385b |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Handle ext(ext(x)) -> ext(x) immediately, since it's simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
956b3490349019163d1d12bb42b82f7e1fcc20ee |
|
01-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6c41ad8c9a93668c481436fc4a5e47e6f14776e7 |
|
31-May-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6623: when optimizing for size, don't inline memcpy/memsets that are too large. This causes the freebsd bootloader to be too large apparently. It's unclear if this should be an -Os or -Oz thing. Thoughts welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6b378618273bab1ee64c5034f4fd8e8338b7110f |
|
31-May-2010 |
Chris Lattner <sabre@nondot.org> |
the 'limit' argument to FindOptimalMemOpLowering is unsigned, not uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7451d3e09d26115195280ba36f686a0a90815089 |
|
29-May-2010 |
Dan Gohman <gohman@apple.com> |
SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set doesn't needs its EnableFastISel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
23ff7cff52702a8bff904d8ab4c9ca67cc19d6ca |
|
26-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in ISD::. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
789955127e06774b629e9db1cfa983184ceeda76 |
|
15-May-2010 |
Dale Johannesen <dalej@apple.com> |
Improve assertion messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff7a562751604a9fe13efc75bd59622244b54d35 |
|
11-May-2010 |
Dan Gohman <gohman@apple.com> |
Implement a bunch more TargetSelectionDAGInfo infrastructure. Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ad017dcb3a41bb053a6a5fa873d07222763dae75 |
|
10-May-2010 |
Duncan Sands <baldrick@free.fr> |
Add an assertion to catch attempts to access off the end of the array. Based on a patch by Javier Martinez. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0a406ae0d940d92c51ee145b48ff7a483a366849 |
|
07-May-2010 |
Dale Johannesen <dalej@apple.com> |
Fix PR 7087, and probably other things, by extending getConstantFP to accept the two supported long double target types. This was not the original intent, but there are other places that assume this works and it's easy enough to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cc751bb99ca868467bb9676af351bbdc29873fff |
|
07-May-2010 |
Dan Gohman <gohman@apple.com> |
Print debug information for SDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d71bb562758c417e91ab05424cea93264b35c67a |
|
01-May-2010 |
Bill Wendling <isanbard@gmail.com> |
EXTRACT_VECTOR_ELT of an INSERT_VECTOR_ELT may have the same index, but the indexes could be of a different value type. Or not even using the same SDNode for the constant (weird, I know). Compare the actual values instead of the pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fdb42fa5fe794cc2c89e2ed7f57a89ed24d9952a |
|
26-Apr-2010 |
Dale Johannesen <dalej@apple.com> |
Add DBG_VALUE handling for byval parameters; this produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bc7588eb6882466fe3cd2e36bfb3d01e4ce23faa |
|
21-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add another variant of this test which found a place where CodeGen's ComputeMaskedBits was being over-conservative when computing bits for an ADD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
50d2b1ac029d63500ea9b9347561b1454fa6ed6a |
|
19-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Give SelectionDAG a TargetMachine too, rather than having it fetch one from the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
383b5f6b91914454a9a8a6d829b4eeb714c75113 |
|
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Delete now-unnecessary const_casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d858e90f039f5fcdc2fa93035e911a5a9505cc50 |
|
17-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Use const qualifiers with TargetLowering. This eliminates several const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4bcf0a9233e334532d86111829375f73776984ad |
|
16-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Commit this, which should have accompanied 101531. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
46510a73e977273ec67747eb34cbdb43f815e451 |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
58c2587ed8e2cd0928a959dbb213bdcc028b1213 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Remove unnecessary parens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c3b0c341e731b27b550ee9dcded9c17232b296b8 |
|
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Avoid using f64 to lower memcpy from constant string. It's cheaper to use i32 store of immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
decc2671516e6c52ee2f29f7746f8d02753845ea |
|
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Three changes: 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
01f0e8561d8e95b1de94d3971b8ad0aa29c20951 |
|
06-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Remove assert to treat memmove and memset like memcpy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
18141eed26d90b225ed4451a6b6521fb01f8eb31 |
|
06-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7b55d3665cc1f19859a77426f65218c8083b3142 |
|
05-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c06a20814875d4b073204d5662491a4d00d7880 |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
lowering a volatile llvm.memcpy to a libc memcpy is ok. PR6779 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
512063dd0f91a76b9dd904dfff72a52b4d09e89f |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove the now-redundant MMI pointer in SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
de6e783b2490447866b592cd39855e6f4d25efff |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some redundant MMI arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ba79d72eab446e64d360e8263d77732b5e13d556 |
|
05-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
selection dag doesn't need DwarfWriter, remove some tendrils. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
20adc9dc4650313f017b27d9818eb2176238113d |
|
04-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a4f2bb08de92ccec21cbb3d0a9518384b0173660 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop using DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f28f8bc40eedc6304ab25dd8bed486fa08f51f70 |
|
02-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Correctly lower memset / memcpy of undef. It should be a nop. PR6767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e754d3fb852abdeaf910c7331eed60f6303597c1 |
|
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Revert r100191 since it breaks objc in clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e33c848fa481b038d5ad0c7c898c33b2b27ec71e |
|
02-Apr-2010 |
Mon P Wang <wangmp@apple.com> |
Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6cdb7e22aaa229d2b2845d7e8a5a11a30eeaac99 |
|
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Skip checking preferred alignment of GVs defined in other translation units all together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
94107ba9ceaa199f8e5c03912511b0619c84226d |
|
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Avoid using floating point stores to implement memset unless the value is zero. - Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
255f20f7f76e4ca1ac1c73294852cb6fcb18c77d |
|
01-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix sdisel memcpy, memset, memmove lowering: 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
100f090adde26005b9f1eca96871dff52825b27b |
|
31-Mar-2010 |
Bob Wilson <bob.wilson@apple.com> |
Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
808bab0169ab7d2e8dfdc72dd2c991cd8ff2396d |
|
30-Mar-2010 |
Mon P Wang <wangmp@apple.com> |
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
87bd1916024497ceaf3cdc050e743a532813e82b |
|
30-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
31441b7e95e0840e1ae144e5db6f791d6a36bc60 |
|
29-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pool allocate SDDbgValue nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bfcb3051899b7141a946d769fcf6e8a8453bc530 |
|
25-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers. Here is a theoretical example that illustrates why the placement is important. tmp1 = store tmp1 -> x ... tmp2 = add ... ... call ... store tmp2 -> x Now mem2reg comes along: tmp1 = dbg_value (tmp1 -> x) ... tmp2 = add ... ... call ... dbg_value (tmp2 -> x) When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1. Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers"). This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9553188fccbf0ae9c5b6bef26d0d2bd5feff8b59 |
|
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Define placement new wrappers for BumpPtrAllocator and RecyclingAllocator to allow client code to be simpler, and simplify several clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ed7d10e1000ae88c9ec7a0db6002eb8b8543a470 |
|
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
SIGN_EXTEND from the same type as the dest is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7fb5c2dbec26b7de959269ade8906a7a1b6c7539 |
|
15-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
sink the call to VT.getSizeInBits() down into its uses, not all unary nodes necessarily have a simple result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a8efe28a44996978faa42a387f1a6087a7b942c7 |
|
14-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Rename SDDbgValue.h to SDNodeDbgValue.h for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
927411b7ce0b7852fe4f392d8cd4faaa3881f852 |
|
14-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make default expansion for FP16 <-> FP32 nodes into libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7561d480953e0a2faa4af9be0a00b1180097c4bd |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bfdf7f38523bd38ae0538861a2bfd8bdc46e5c33 |
|
10-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Progress towards shepherding debug info through SelectionDAG. No functional effect yet. This is still evolving and should not be viewed as final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
acee647b13d6e3e92cdbfe9657622a3daa2a6da1 |
|
07-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
Use Other as a sentinel instead of iAny. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ba72b0c4e17795fd61e18d022a6d86a680be00c5 |
|
04-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a72d2a210c61aa60f5e03bfc3cd697f809fee3e5 |
|
03-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Fix a bug in SelectionDAG's ReplaceAllUsesWith in the case where CSE and recursive RAUW calls delete a node from the use list, invalidating the use list iterator. There's currently no known way to reproduce this in an unmodified LLVM, however there's no fundamental reason why a SelectionDAG couldn't be formed which would trigger this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
46ada19645c981a0b7932487d163f7582074a4d9 |
|
02-Mar-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove dead parameter passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
df51247725143acb781c224faffd848cc7cf95d8 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
remove all but one version of SelectionDAG::MorphNodeTo (the most general) the others are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7d892d6e6d451e9a0d0f9db839a943a256126c05 |
|
01-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
some trivial microoptimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
21221e357c6aa9ade3966ee86dab7d44c25220d0 |
|
28-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
enhance the new isel to handle the 'node already exists' case of MorphNodeTo directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5cf0b6e4a94ab3baa991795051f63db139097ed3 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
clean up various VT manipulations, patch by Micah Villmow! PR6337 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
46ca5efdd5b748ba8aa62168f7753cb46b683bc5 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
convert cycle checker to smallptrset, add comments and make it more elegant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a1461ccfa0f19b2a81afb401c1d772f751edf7ae |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
revert david's patch which does not even build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2f9b6851982608e8aa20ca99398daf949d0f707b |
|
24-Feb-2010 |
David Greene <greened@obbligato.org> |
Use a SmallPtrSet as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e832693acbfc713bcaf44720efa8149e93a38027 |
|
24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When forming SSE min and max nodes for UGE and ULE comparisons, it's necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
91ff7f75f55a626eb41761f3ded9f3d13002980c |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
add node #'s to debug dumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5857e0add8ab25825628d1ef19cec027e605dcd5 |
|
24-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
make selectnodeto set the nodeid to -1. This makes it more akin to creating a new node then replacing uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4548e02bd6336983a21afdf5f6a3ea333ce2daca |
|
23-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Print node ID's in dumps and views if set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e3d97c744772c075e11f372548cc8d848d555ee9 |
|
23-Feb-2010 |
David Greene <greened@obbligato.org> |
Speed up cycle checking significantly by caching results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1157f791c967668f0838bb6edb66103c760f1a5b |
|
17-Feb-2010 |
David Greene <greened@obbligato.org> |
Make the non-temporal bit "significant" in MemSDNodes so they aren't CSE'd or otherwise combined with temporal MemSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1df9859c40492511b8aa4321eb76496005d3b75b |
|
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f76de0011ff062d8fd6ba81382a7c7c36c9151c2 |
|
16-Feb-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak. Patch by Nicolas Geoffray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1e559443a17d1b335f697551c6263ba60d5dd827 |
|
15-Feb-2010 |
David Greene <greened@obbligato.org> |
Add non-temporal flags and remove an assumption of default arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
39143700a41cc450252bf2e0b000ce1dd723eb0c |
|
10-Feb-2010 |
David Greene <greened@obbligato.org> |
Only dump output in debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
518bb53485df640d7b7e3f6b0544099020c42aa7 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
87c46d8a0e9d85d39bfd93a4e6307a871075add6 |
|
01-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
Improve EXTRACT_VECTOR_ELT patch based on comments from Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c6654ec498698919ae8388c53fe91d0366ac24c7 |
|
01-Feb-2010 |
Mon P Wang <wangmp@apple.com> |
Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can be used to extended the width of an integer type. This fixes a bug for Generic/vector-casts.ll on a ppc750. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c2873a74bffaf608e268761b30439e158369413 |
|
29-Jan-2010 |
Duncan Sands <baldrick@free.fr> |
Change the SREM case to match the logic in the IR version ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4533cac557cdcc13e7c990942758ec8338d9172a |
|
28-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Assign the ordering of SDNodes in a much less intrusive fashion. After the "visit*" method is called, take the newly created nodes, walk them in a DFS fashion, and if they don't have an ordering set, then give it one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
187361b056823df4ff292561fe47468dad956872 |
|
23-Jan-2010 |
Bill Wendling <isanbard@gmail.com> |
Remove the '-disable-scheduling' flag and replace it with the 'source' option of the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also, keep track of the SDNode ordering by default. Eventually, we would like to make this ordering a way to break a "tie" in the scheduler. However, doing that now breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cf495bc2e505e52ad018da55bed11c7b8bc97db5 |
|
20-Jan-2010 |
David Greene <greened@obbligato.org> |
When XDEBUG is enabled, check for SelectionDAG cycles at some key points. This will help us find future problems like the one described in PR6019. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
221925eccace7433cb3b3c42875645c499db91a2 |
|
20-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some asserts to check SelectionDAG problems earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ce6715faa37b2e44edcf400084aa808ae30d7085 |
|
19-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some new debugging APIs to print out "raw" SelectionDAGs to make understanding CannotYTetSelect and other errors easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ac931c011fae9392b5d68e763ec64ee25181c267 |
|
15-Jan-2010 |
David Greene <greened@obbligato.org> |
Add some debug routines to SelectionDAG to dump full DAGs. print/dumpWithDepth allows one to dump a DAG up to N levels deep. dump/printWithFullDepth prints the whole DAG, subject to a depth limit on 100 in the default case (to prevent infinite recursion). Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly what the non-matching DAG looks like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d1996360399ad6dbe75ee185b661b16c83146373 |
|
09-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNode really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d40d03e1bd1d51857fc2f9f9230e334c3a32b249 |
|
06-Jan-2010 |
Evan Cheng <evan.cheng@apple.com> |
Teach dag combine to fold the following transformation more aggressively: (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
55d146e0f9ed00d4e3934bcc00c4179a88f83353 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ea3c2461932d96d3defa0a9aa93ffaf631bb19d |
|
22-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Add more plumbing. This time in the LowerArguments and "get" functions which return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0777e927214c61c5d681e5b7dd5d00665c81133a |
|
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add a bit more plumbing assigning an order to SDNodes. - Modify the "dump" method to emit the order of an SDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e36025ec18a3fcadd121ded6792d82c66498c614 |
|
21-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Place SDNodeOrdering.h in the directory it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cc62c3c9282d927c6af1a0f4b5d73dbac53ea977 |
|
19-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Use 4-arg getVTList) variant instead of generic one, when possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b4e6a5df5dada0cd919cc6e2717eb3118db9cc45 |
|
19-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Changes from review: - Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
819309efec6f11ba752bd7cbfe186495745f020b |
|
16-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
222518d0bb2786a14cf3adf6030c55213d5399f8 |
|
16-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Initial work on disabling the scheduler. This is a work in progress, and this", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
614407a9d21d10ee4f6c45295852c72ad86cb029 |
|
15-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Initial work on disabling the scheduler. This is a work in progress, and this stuff isn't used just yet. We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2' flags. The hypothesis is that the people who use these flags know what they are doing, and have hand-optimized the C code to reduce latencies and other conflicts. The idea behind our scheme to turn off scheduling is to create a map "on the side" during DAG generation. It will order the nodes by how they appeared in the code. This map is then used during scheduling to get the ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2e141d744ee1354f49a99d9da49dbd9570e4269d |
|
15-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Fix integer cast code to handle vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
60283f9bc9da85e032006db5e2ccc364cef89267 |
|
13-Dec-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix weird typo which leads to unallocated memory access for nodes with 4 results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
87862e77bbf90cf1b68c9eea1f3641ad81435e38 |
|
11-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7bd6478cd6a1264f884b46f3694af3a68a6fab0a |
|
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
64fa4a9584113f63eccc1a650e7e0cc4ddbab3f6 |
|
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
de2ace1758286f8442a13532d9cd7d3c4cce47ef |
|
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Infer alignment for non-fixed stack object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7ced2e0b304e76ab746c7d9a54ad8d4930445a38 |
|
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f2dc5c785dea1816cbc064b58b4b6ea23c4fd7d4 |
|
09-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Refactor InferAlignment out of DAGCombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cd6e725f21852e2f8cdf5fd0e65eb42c224776f8 |
|
30-Nov-2009 |
Mon P Wang <wangmp@apple.com> |
Added support to allow clients to custom widen. For X86, custom widen vectors for divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
735afe14eea8049bf69210ce8a3512e391fc643f |
|
24-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used. Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bef8888a9197655512f156e50b10799da7240252 |
|
21-Nov-2009 |
Devang Patel <dpatel@apple.com> |
We are not using DBG_STOPPOINT anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
29cbade25aa094ca9a149a96a8614cf6f3247480 |
|
21-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Target-independent support for TargetFlags on BlockAddress operands, and support for blockaddresses in x86-32 PIC mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1e608819aa26c06b1552521469f2211339e3bfe0 |
|
13-Nov-2009 |
Dale Johannesen <dalej@apple.com> |
Adjust isConstantSplat to allow for big-endian targets. PPC is such a target; make it work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3f2bf85d14759cc4b28a86805f566ac805a54d00 |
|
12-Nov-2009 |
David Greene <greened@obbligato.org> |
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bdea34807aadf7a27ebaf1b7c5b7c199afda3e91 |
|
07-Nov-2009 |
Mon P Wang <wangmp@apple.com> |
Fix memoizing of CvtRndSatSDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c5600c89d61e25f0662847a81af8afbf264caee4 |
|
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Avoid printing a redundant space in SDNode->dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0ba90f3e34b826b039bdfece1415ef032c4ad3f5 |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8c2b52552c90f39e4b2fed43e309e599e742b6ac |
|
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Initial target-independent CodeGen support for BlockAddresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6c1de1830b233e61f6f122923ba5bcf3c81dc288 |
|
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove some unnecessary spaces in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6688d617978b338f96d27c6d73a396fbd2bf8e9c |
|
28-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rewrite SelectionDAG::isPredecessorOf to be iterative instead of recursive to avoid consuming extraordinary amounts of stack space when processing tall graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
443b2153e3c1c039f5fbf229bd2df2da179f3875 |
|
22-Oct-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix null pointer dereference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff89dcb06fbd103373436e2d0ae85f252fae2254 |
|
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
-Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
20270c909357e5e501cac1f5393430dfacfc57d8 |
|
18-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Only fixed stack objects and spill slots should be get FixedStack PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6553155172a2e74feff1253837daa608123de54a |
|
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert 84315 for now. Re-thinking the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bf125583f8bd8196a34921276add7f304b7c1433 |
|
17-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Rename getFixedStack to getStackObject. The stack objects represented are not necessarily fixed. Only those will negative frame indices are "fixed." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
11ee508d7bd37f2b007da735fbd2c1497ed51848 |
|
15-Oct-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Report errors correctly for unselected target intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3a66a68b0cc81193abfc074b1d360a4950151d38 |
|
13-Oct-2009 |
Duncan Sands <baldrick@free.fr> |
Introduce new convenience methods for sign extending or truncating an SDValue (depending on whether the target type is bigger or smaller than the value's type); or zero extending or truncating it. Use it in a few places (this seems to be a popular operation, but I only modified cases of it in SelectionDAGBuild). In particular, the eh_selector lowering was doing this wrong due to a repeated rather than inverted test, fixed with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c81b783e2777b70f4533a4750489d058b6b74ad9 |
|
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make getMachineNode return a MachineSDNode* instead of a generic SDNode* since it won't do any folding. This will help avoid some inconvenient casting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5fcbf0d26ecb99d54c182f542bf8db43ff048d6d |
|
08-Oct-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add a SelectionDAG getTargetInsertSubreg convenience function, similar to getTargetExtractSubreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c76909abfec876c6b751d693ebd3df07df686aa0 |
|
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Improve MachineMemOperand handling. - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
602b0c8c17f458d2c80f2deb3c8e554d516ee316 |
|
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Rename getTargetNode to getMachineNode, for consistency with the naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8fc13cb4f7a2997f993ffdfe6e488046ec6c834e |
|
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a version of dumpr() that has a SelectionDAG* argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4e918b2c8ca81edd63f6708e08835b2c14648615 |
|
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Use getStoreSize() instead of getStoreSizeInBits()/8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a55ce4a392f07ac1f3c183100ac591b7ad7c693 |
|
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Rename several variables from EVT to more descriptive names, now that EVT is also the name of their type, as declarations like "EVT EVT" look really odd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cd26ec5f3c089b3b24f80ff200e94e681eb9e1ee |
|
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Give MachineMemOperand an operator<<, factoring out code from two different places for printing MachineMemOperands. Drop the virtual from Value::dump and instead give Value a protected virtual hook that can be overridden by subclasses to implement custom printing. This lets printing be more consistent, and simplifies printing of PseudoSourceValue values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
28f02fdd76f4efc05d14649e0eec90ce8e71e17e |
|
21-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Change MachineMemOperand's alignment value to be the alignment of the base pointer, without the offset. This matches MemSDNode's new alignment behavior, and holds more interesting information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7453f8a68f506837d332056733c14001b828d6e1 |
|
20-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
40fe16fadaccb86d9bff13ebe1c9a0cb20b2251b |
|
16-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Do not add the SVOffset to the Node CSE ID. The same pointer argument cannot have different SVOffsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
101b25c028706c61c7dd9fb92d0b3c1541cb12b6 |
|
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Better solution for tracking both the original alignment of the access, and the current alignment based on the source value offset. This avoids increasing the size of mem nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
71524d716ad7da8f5a8e75085f9739aa6b772f9d |
|
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Remove incorrect CSE code from r81813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e6798372ea38e5ea24c26282a0d69aa6e3829854 |
|
15-Sep-2009 |
Nate Begeman <natebegeman@mac.com> |
Add an "original alignment" field to load and store nodes. This enables the DAG Combiner to disambiguate chains for loads and stores of types which are broken up by the Legalizer into smaller pieces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8d44b28bc6f615b9ad79b066987d53b1ea2a2942 |
|
03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Recognize more opportunities to use SSE min and max instructions, swapping the operands if necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e4b275610a7a05b7ee4c0378a906a6330e4c4ab0 |
|
29-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Reapply 79977. Use MDNodes to encode debug info in llvm IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
824598883513789516a919651f4b35e7a638ec5c |
|
26-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d8110fb7264993f30133c532cd074313bead0afa |
|
26-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of this horrible "benign race" by exploiting ManagedStatic to initialize the array on its first access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2a610c7387664bc557a35ce3bb4c0d4df56e4755 |
|
25-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
45cfe545ec8177262dabc70580ce05feaa1c3880 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
Change Pass::print to take a raw ostream instead of std::ostream, update all code that this affects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
24f20e083280d979e8fa1bc88959ae9e8339ee99 |
|
22-Aug-2009 |
Devang Patel <dpatel@apple.com> |
Record variable debug info at ISel time directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
02b10347bb2497e18d3a4019beed2974aa715cd4 |
|
22-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Reapply r79708 with the appropriate fix for the case that still requires locking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
895a55e66d107aa96a1e763a62a97e8ad62284a0 |
|
22-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
revert r79708 + r79711 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8dde7c0ff1a568a0739ff7581464c31dbc063527 |
|
22-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Actually remove unused static. Previous commit removed trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4d7c18c49bdc6e39ea6e862072ec224de499a2a1 |
|
22-Aug-2009 |
Eric Christopher <echristo@apple.com> |
Remove unused static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0b7401d3cdb4a2ecd266396ef1a77c8533a4476d |
|
22-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Ease contention on this lock by noticing that all writes to the VTs array will be of (dynamically) constant values, so races on it are immaterial. We just need to ensure that at least one write has completed before return the pointer into it. With this change, parllc exhibits essentially no overhead on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6a402dc952ccad3f8fd0d9e272dbdd261f50854e |
|
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Add an x86 peep that narrows TEST instructions to forms that use a smaller encoding. These kinds of patterns are very frequent in sqlite3, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a9d5f96a5681ffe6e48dab9c8c383e71fd82a2c |
|
16-Aug-2009 |
Evan Cheng <evan.cheng@apple.com> |
Needs to check whether unaligned load / store of i64 is legal here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bc037cfcdef8e88274d7dd167fb9d8ba545f2229 |
|
15-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Unbreak build. Evan, please make sure my changes are correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
72977a45a8ad9d9524c9b49399e89fb9a3a676ed |
|
14-Aug-2009 |
Anton Korobeynikov <asl@math.spbu.ru> |
Allow targets to specify their choice of calling conventions per libcall. Take advantage of this in the ARM backend to rectify broken choice of CC when hard float is in effect. PIC16 may want to see if it could be of use in MakePIC16Libcall, which works unchanged. Patch by Sandeep! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
23b9b19b1a5a00faa9fce0788155c7dbfd00bfb1 |
|
12-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
766b5efd99c01e26f00f22d81b57d1385b3d2ab0 |
|
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Fix warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
825b72b0571821bf2d378749f69d6c4cfb52d2f9 |
|
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Split EVT into MVT and EVT, the former representing _just_ a primitive type, while the latter is capable of representing either a primitive or an extended type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ffef8acc3e3398bdd04e947c7949befdd52faf86 |
|
11-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1b747ad8a0694b86e8d98a8b9a05ddfe74ec0cd3 |
|
11-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SjLj based exception handling unwinding support. This patch is nasty, brutish and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e50ed30282bb5b4a9ed952580523f2dda16215ac |
|
11-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
77547befdc430633aaedf4130ddf17d953ed552e |
|
10-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
98ca4f2a325f72374a477f9deba7d09e8999c29b |
|
05-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Major calling convention code refactoring. Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
206ad10c14e5dda3bf7b2dc8faf84b2f75124844 |
|
04-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Propogate the Depth argument when calling TLI.computeMaskedBitsForTargetNode from ComputeMaskedBits, since the former may call back into the latter. This fixes a major compile time problem on a testcase that happnened to hit this in a particularly bad way, PR4643. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1944da1c5af82e95c9a4970a7f6a7310db0f6707 |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Print the target flags as an int instead of a char, as they aren't actually characters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a114baa5bf0d70aed8b8cf576a864005c0d6a128 |
|
30-Jul-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Allow targets to define libcall names for mem(cpy,set,move) intrinsics, rather than hardcoding them in DAG lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
debcb01b0f0a15f568ca69e8f288fade4bfc7297 |
|
30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move types back to the 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6f83c9c6ef0e7f79825a0a8f22941815e4b684c7 |
|
27-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantFP construction back to the 2.5-ish API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
eed707b1e6097aac2bb6b3d47271f6300ace7f2e |
|
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
|
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cfb8a1bea15f50e6609283c0e06f815a1448a14b |
|
19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some minor MSVC compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
914e50c841bbc248ab94144c11813b5785b1292d |
|
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Privatize the ConstantFP table. I'm on a roll! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
001dbfebcbbded8c8e74b19e838b50da2b6c6fb5 |
|
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in our current context-passing stuff, which is also fixed here git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
|
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c680ac90032bf455b2bba77de538fccea08eb267 |
|
10-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned value. Adjust other code to deal with that correctly. Make DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of this new flexibility to simplify the code and make it deal with unusual vectors (like <4 x i1>) correctly. Fixes PR3037. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5dcaceb0a6a7fcf508d9898547e10d374b0e4cd1 |
|
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
As Chris pointed out, we don't actually need to pass the context around here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d1474d09cbe5fdeec8ba0d6c6b52f316f3422532 |
|
09-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through MVT and related parts of SDISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2e4284de53fb70686c5c135387006d033171da2e |
|
09-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make SelectionDAG::getVectorShuffle work properly for VECTOR_SHUFFLE nodes with operand types that differ from the result type. (This doesn't normally happen right now, because SelectionDAGLowering::visitShuffleVector normalizes vector shuffles.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a4f73182450ad6d7197c9229f6396f2e54faefdf |
|
08-Jul-2009 |
Chris Lattner <sabre@nondot.org> |
SelectionDAG::SignBitIsZero doesn't work right for vectors, for now, conservatively return false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a9d1f2c559ef4b2549e29288fe6944e68913ba0f |
|
07-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Have scoped mutexes take referenes instead of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6b61cd185eeb90bec93f042535594132ae1f0f41 |
|
03-Jul-2009 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Add NumFixedArgs attribute to CallSDNode which indicates the number of fixed arguments in a vararg call. With the SVR4 ABI on PowerPC, vector arguments for vararg calls are passed differently depending on whether they are a fixed or a variable argument. Variable vector arguments always go into memory, fixed vector arguments are put into vector registers. If there are no free vector registers available, fixed vector arguments are put on the stack. The NumFixedArgs attribute allows to decide for an argument in a vararg call whether it belongs to the fixed or variable portion of the parameter list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5b93ea1ca3cf55a750e58abee7ed845b210d14c8 |
|
27-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a typo that GCC should have caught that causes crashes with -view-*-dags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
505e982040fe7482e5f3c09b0c899c4e09393b69 |
|
26-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
fix a really subtle bug in the cross section of aliases and TLS: the SelectionDAG::getGlobalAddress function properly looks through aliases to determine thread-localness, but then passes the GV* down to GlobalAddressSDNode::GlobalAddressSDNode which does not. Instead of passing down isTarget, just pass down the predetermined node opcode. This fixes some assertions with out of tree changes I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f5a5546f435a261c93078defb41ed18d9cafd7d3 |
|
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
add targetflags to jump tables and constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2a4ed82ce2ba4a02f2a02eb4ed8ce5186f3f93da |
|
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
allow setting target operand flags on TargetGlobalAddress nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1af2231da64a14d638406d133c7912bfc1c8a9ce |
|
25-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
start bringing targetoperand flags into isel, first up, ExternalSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b4459088d62670b0f0333eab1b260622955ec3e5 |
|
25-Jun-2009 |
Owen Anderson <resistor@mac.com> |
Provide guards for this shared structure. I'm not sure this actually needs to be shared, but how/where to privatize it is not immediately clear to me. If any SelectionDAG experts see a better solution, please share! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8539cfd30e6058e605ed2f38fb29523ea42e17a1 |
|
24-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Rewrite 73900 per Duncan's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
08bc98e3cc1c6859ee78f304c0182098b580b56f |
|
22-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Fix memcpy expansion so it won't generate invalid types for the target (I think). This was breaking the PPC32 calling sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
578efa920abd218ba75a0fb3c9b8398f4c0a774b |
|
05-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Add new function attribute - noimplicitfloat Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
77b81fe487de709d41dfcc97bbb2941ae1bb80af |
|
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Don't do the X * 0.0 -> 0.0 transformation in instcombine, because instcombine doesn't know when it's safe. To partially compensate for this, introduce new code to do this transformation in dagcombine, which can use UnsafeFPMath. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
68f32cbb1f9e62d5e6047b048c0d7d217b8717e1 |
|
04-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
874ae251c317788391f9c3f113957802d390a063 |
|
02-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Revert 72707 and 72709, for the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4150d83abe90a5da4ddf86433b7bf4329acfa57c |
|
02-Jun-2009 |
Dale Johannesen <dalej@apple.com> |
Make the implicit inputs and outputs of target-independent ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format. Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets. The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
51b16f473759c1546acbf308a5d3f3e7bf3ea23c |
|
30-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Untabification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
af29a5235d3a1a09e9fc2989a5d504f00fa9aaf3 |
|
05-May-2009 |
Chris Lattner <sabre@nondot.org> |
Make DBG_STOPPOINT nodes, and therefore DBG_LABEL labels, get a DebugLoc, so that it shows up in -print-machineinstrs. This doesn't appear to affect anything, but it was weird for some DBG_LABELs to have DebugLocs but not all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a641575828192c741531d431fbf191e6c1ba17c5 |
|
29-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Update comment, replace theoretically impossible check with an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5a5ca1519e04310f585197c20e7ae584b7f2d11f |
|
29-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
Implement review feedback for vector shuffle work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a3518a1d6a6a9a7519d3a8d434cde51617c1dc22 |
|
29-Apr-2009 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Add a public method called getAddressSpace() to the GlobalAddressSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9008ca6b6b4f638cfafccb593cbc5b1d3f5ab877 |
|
27-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
2nd attempt, fixing SSE4.1 issues and implementing feedback from duncan. PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2f91f30b932ad56cd82398d872d4874facf84220 |
|
24-Apr-2009 |
Dale Johannesen <dalej@apple.com> |
Fix PR 4057, a crash doing float->char const folding. This particular one is undefined behavior (although this isn't related to the crash), so it will no longer do it at compile time, which seems better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
15684b29552393553524171bff1913e750f390f8 |
|
24-Apr-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 69952. Causes testsuite failures on linux x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b706d29f9c5ed3ed9acc82f7ab46205ba56b92dc |
|
24-Apr-2009 |
Nate Begeman <natebegeman@mac.com> |
PR2957 ISD::VECTOR_SHUFFLE now stores an array of integers representing the shuffle mask internal to the node, rather than taking a BUILD_VECTOR of ConstantSDNodes as the shuffle mask. A value of -1 represents UNDEF. In addition to eliminating the creation of illegal BUILD_VECTORS just to represent shuffle masks, we are better about canonicalizing the shuffle mask, resulting in substantially better code for some classes of shuffles. A clean up of x86 shuffle code, and some canonicalizing in DAGCombiner is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bd209ab9bc0f6ad667c15df4453955c2ed4c2434 |
|
21-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code. getConstant knows how to make broadcasted vector constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c885165e664f3b465403e1b6ce57ba63f57c5f0c |
|
20-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Revise my previous change 68996 as suggested by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a507e5538f7fe999b18fd0403c5806cc5ae0b64f |
|
19-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Now that BUILD_VECTOR operands are allowed to be bigger than the vector element type, turn checking of the operand type back on again, appropriately adjusted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b10b5ac8d9da43ca2db61401a20af6b676c98438 |
|
18-Apr-2009 |
Duncan Sands <baldrick@free.fr> |
Don't try to make BUILD_VECTOR operands have the same type as the vector element type: allow them to be of a wider integer type than the element type all the way through the system, and not just as far as LegalizeDAG. This should be safe because it used to be this way (the old type legalizer would produce such nodes), so backends should be able to handle it. In fact only targets which have legal vector types with an illegal promoted element type will ever see this (eg: <4 x i16> on ppc). This fixes a regression with the new type legalizer (vec_splat.ll). Also, treat SCALAR_TO_VECTOR the same as BUILD_VECTOR. After all, it is just a special case of BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c23e4968790395053f3f52aeb3342637fcaafdbf |
|
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Generalize one of the SelectionDAG::ReplaceAllUsesWith overloads to support replacing a node with another that has a superset of the result types. Use this instead of calling ReplaceAllUsesOfValueWith for each value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b1303d05a89972195de023fda432cc621375a27c |
|
14-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Change SelectionDAG type legalization to allow BUILD_VECTOR operands to be promoted to legal types without changing the type of the vector. This is following a suggestion from Duncan (http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-February/019923.html). The transformation that used to be done during type legalization is now postponed to DAG legalization. This allows the BUILD_VECTORs to be optimized and potentially handled specially by target-specific code. It turns out that this is also consistent with an optimization done by the DAG combiner: a BUILD_VECTOR and INSERT_VECTOR_ELT may be combined by replacing one of the BUILD_VECTOR operands with the newly inserted element; but INSERT_VECTOR_ELT allows its scalar operand to be larger than the element type, with any extra high bits being implicitly truncated. The result is a BUILD_VECTOR where one of the operands has a type larger the the vector element type. Any code that operates on BUILD_VECTORs may now need to be aware of the potential type discrepancy between the vector element type and the BUILD_VECTOR operands. This patch updates all of the places that I could find to handle that case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fc1665793e62eb4f26d24b8a19eecf59cd872e2a |
|
10-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Remove the obsolete SelectionDAG::getNodeValueTypes and simplify code that uses it by using SelectionDAG::getVTList instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8f9643f0f768d5dcff0ffea1de6191dba1b5b083 |
|
03-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused. Note that these are distinct from TargetInstrInfo::INSERT_SUBREG and TargetInstrInfo::EXTRACT_SUBREG, which are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f871ccb853a2ccbe8675c912330c041b318be8cd |
|
23-Mar-2009 |
Dan Gohman <gohman@apple.com> |
Now that errs() is properly non-buffered, there's no need to explicitly flush it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1606e8e4cd937e6de6681f686c266cf61722d972 |
|
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants. 2. MachineConstantPool alignment field is also a log2 value. 3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values. 4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries. 5. Asm printer uses expensive data structure multimap to track constant pool entries by sections. 6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic. Solutions: 1. ConstantPoolSDNode alignment field is changed to keep non-log2 value. 2. MachineConstantPool alignment field is also changed to keep non-log2 value. 3. Functions that create ConstantPool nodes are passing in non-log2 alignments. 4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT. 5. Asm printer uses cheaper data structure to group constant pool entries. 6. Asm printer compute entry offsets after grouping is done. 7. Change JIT code to compute entry offsets on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0582ae99ba75a556d6ff63b254da327d32ba036f |
|
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Oops...I committed too much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c7a09ab3110b9462ad9646cb60c22c8527491ad9 |
|
13-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily XFAIL this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d344b884dd6e1fde91c631f99413b9553f3c5c59 |
|
04-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix BuildVectorSDNode::isConstantSplat to handle one-element vectors. It is an error to call APInt::zext with a size that is equal to the value's current size, so use zextOrTrunc instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
24e338e8a3dab2923db30fe63d77a5ac95456ff9 |
|
03-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Generalize BuildVectorSDNode::isConstantSplat to use APInts and handle arbitrary vector sizes. Add an optional MinSplatBits parameter to specify a minimum for the splat element size. Update the PPC target to use the revised interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a27ea9e89f38e9bcca4d67defb0bae887a16d72c |
|
01-Mar-2009 |
Bob Wilson <bob.wilson@apple.com> |
Combine PPC's GetConstantBuildVectorBits and isConstantSplat functions to a new method in a BuildVectorSDNode "pseudo-class". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a87008d90b7d894cfca53d407642acfd7be2af3c |
|
25-Feb-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert BuildVectorSDNode related patches: 65426, 65427, and 65296. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8f1579aedca03f089e239552ba7f1398e657c6f5 |
|
25-Feb-2009 |
Scott Michel <scottm@aero.org> |
Expand tabs to spaces (overlooked in previous commit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
df38043a46b873acb98e7ce0c700d82c1d888772 |
|
25-Feb-2009 |
Scott Michel <scottm@aero.org> |
Remove all "cached" data from BuildVectorSDNode, preferring to retrieve results via reference parameters. This patch also appears to fix Evan's reported problem supplied as a reduced bugpoint test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0001e56f15215ae4bc5fffb82eec5c4828b888f0 |
|
24-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Fix a ValueTracking rule: RHS means operand 1, not 0. Add a simple ashr instcombine to help expose this code. And apply the fix to SelectionDAG's copy of this code too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4214a5531cdbe538a358033f1847e55c4436be1b |
|
23-Feb-2009 |
Scott Michel <scottm@aero.org> |
Introduce the BuildVectorSDNode class that encapsulates the ISD::BUILD_VECTOR instruction. The class also consolidates the code for detecting constant splats that's shared across PowerPC and the CellSPU backends (and might be useful for other backends.) Also introduces SelectionDAG::getBUID_VECTOR() for generating new BUILD_VECTOR nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fdc40a0a696c658d550d894ea03772e5f8af2c94 |
|
17-Feb-2009 |
Scott Michel <scottm@aero.org> |
Remove trailing whitespace to reduce later commit patch noise. (Note: Eventually, commits like this will be handled via a pre-commit hook that does this automagically, as well as expand tabs to spaces and look for 80-col violations.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6f38cb61a94b3abab70f0ee463bdcf55d86d334e |
|
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Use getDebugLoc forwarder instead of getNode()->getDebugLoc. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
92570c4a1a11cbdaf5ffb13547428dbee1103875 |
|
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Make SDNode constructors take a DebugLoc always. Adjust derived classes to pass UnknownLoc where a DebugLoc does not make sense. Pick one of DebugLoc and non-DebugLoc variants to survive for all such classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
edb62c484e00daab09db92a2e512bb50752d9e50 |
|
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove now-unused constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b300d2aa3ef08b5074449e2c05804717f488f4e4 |
|
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of the last non-DebugLoc versions of getNode! Many targets build placeholder nodes for special operands, e.g. GlobalBaseReg on X86 and PPC for the PIC base. There's no sensible way to associate debug info with these. I've left them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. I'm not too happy about this but don't see a good improvement; I considered adding a getPseudoOperand or something, but it seems to me that'll just make it harder to read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e8d7230f480654cdb8ff1c3d0a38e1e9ab0bd55f |
|
07-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove more non-DebugLoc getNode variants. Use getCALLSEQ_{END,START} to permit passing no DebugLoc there. UNDEF doesn't logically have DebugLoc; add getUNDEF to encapsulate this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
de06470330260f5937e7ca558f5f5b3e171f2ee5 |
|
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove more non-DebugLoc versions of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f5f5dce897269885754fc79adeb809194da52942 |
|
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Eliminate remaining non-DebugLoc version of getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f90b2a7742ddeddc448586cc050818a664419e74 |
|
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
get rid of some non-DebugLoc getTargetNode variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ed2eee63a6858312ed17582d8cb85a6856d8eb34 |
|
06-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of one more non-DebugLoc getNode and its corresponding getTargetNode. Lots of caller changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3484c09e0da3c05c8a78946e090c7610208d937b |
|
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove a non-DebugLoc version of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9b36c631ebb9c68678b7ec5b9407a9b4d127e0f7 |
|
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove 3 non-DebugLoc variants of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b0e341bca13cc4c729ba577cfcc6257bb1da0b33 |
|
05-Feb-2009 |
Mon P Wang <wangmp@apple.com> |
Fix a bug where we were not emitting a cvt rnd sat node for converting between a unsigned integer and signed integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2fabcb27761e0f07368f065fda0144d824e1e51c |
|
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Get rid of 3 non-DebugLoc getNode variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4be0bdf7c1162824927dd3de89e016ae4934d0d6 |
|
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of getMergeValues, ZeroExtendInReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a05dca4f9e051fad19fe9b5f6cce2715c1e5d505 |
|
05-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc forms of CopyToReg and CopyFromReg. Adjust callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4caa0427bfae369854ecdfe60b94238e566a5475 |
|
04-Feb-2009 |
Stuart Hastings <stuart@apple.com> |
80 column rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
33c960f523f2308482d5b2816af46a7ec90a6d3d |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc versions of getLoad and getStore. Adjust the many callers of those versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
80d6977e90c22313d5a62ac28811e0386a806aff |
|
04-Feb-2009 |
Stuart Hastings <stuart@apple.com> |
Since I'm obliged to work with a development OS that currently doesn't support GraphViz, I've been using the foo->dump() facility. This patch is a minor rewrite to the SelectionDAG dump() stuff to make it a little more helpful. The existing foo->dump() functionality does not change; this patch adds foo->dumpr(). All of this is only useful when running LLVM under a debugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
39355f9fea790c5a1b12ef0fdcfeac3f533232ea |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove non-DebugLoc forms of the exotic forms of Lod and Sto; patch uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f5d9789a7fddc9173cee104c8f25a7564bad3f28 |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove some more non-DebugLoc versions of construction functions, with callers adjusted to fit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8ad9b43e690e8773cf836b30e8da26bc71e18844 |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Remove a few non-DebugLoc versions of node creation functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a04b75710910278334192b389c4c4c62600e162f |
|
04-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
DebugLoc propagation; adjustment to things omitted from SelectionDagBuild. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0f502f6f44f2756f5cb7b17d8f1d8eae000d51b4 |
|
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Add some DL propagation to places that didn't have it yet. More coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b51d40cf40eac676dda3ae9dfeb55822fa403394 |
|
03-Feb-2009 |
Devang Patel <dpatel@apple.com> |
First initialize DAG otherwise dwarf writer is used uninitialized. Duncan spotted this. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dbfd8dbdee81d016557dc77d34090492eda55562 |
|
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Fill in some missing DL propagation in getNode()s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff97d4fe81ef0dcee9fe490bed8ab08e40251905 |
|
03-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Propagation in TargetLowering. Includes passing a DL into SimplifySetCC which gets called elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a7ce741ff0ab02510833854bfa6a1c8c265faee3 |
|
03-Feb-2009 |
Dan Gohman <gohman@apple.com> |
Use the SubclassData field to hold ExtType, isTrunc, and MemIndexedMode information. This eliminates the need for the Flags field in MemSDNode, so this makes LoadSDNode and StoreSDNode smaller. Also, it makes FoldingSetNodeIDs for loads and stores two AddIntegers smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
54c94525f420cab274af60e98a77f081f96e59c2 |
|
02-Feb-2009 |
Dale Johannesen <dalej@apple.com> |
Commit missing files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b0d5cdd52e8448f769cd71aaee6a4b8592dc08b1 |
|
01-Feb-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3453 and probably a bunch of other potential crashes or wrong code with codegen of large integers: eliminate the legacy getIntegerVTBitMask and getIntegerVTSignBit methods, which returned their value as a uint64_t, so couldn't handle huge types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
92abc62399881ba9c525be80362c134ad836e2d9 |
|
31-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Fix PR3401: when using large integers, the type returned by getShiftAmountTy may be too small to hold shift values (it is an i8 on x86-32). Before and during type legalization, use a large but legal type for shift amounts: getPointerTy; afterwards use getShiftAmountTy, fixing up any shift amounts with a big type during operation legalization. Thanks to Dan for writing the original patch (which I shamelessly pillaged). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a7b6cff99f5015120f828c316823cb32eed93901 |
|
31-Jan-2009 |
Mon P Wang <wangmp@apple.com> |
If unsafe FP optimization is not set, don't allow -(A-B) => B-A because when A==B, -0.0 != +0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7d2ad624fa749a6d3edac0d94e9c107989c16304 |
|
31-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Make LowerCallTo and LowerArguments take a DebugLoc argument. Adjust all callers and overloaded versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7581bfa2757a3149c6d17c0fe592e5c3808aa843 |
|
31-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Get rid of the non-DebugLoc-ified getNOT() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6ce610f04bb232ce8b57e50e885f30f65d19e1a6 |
|
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Propagate debug loc info for some of the *_EXTEND functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
41b9d278add97c744930aa2a0048ff1c01e48c4f |
|
30-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
DebugLoc form of getNOT(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
197e88f7963946dfdb4770ed27ee246eb087ca10 |
|
29-Jan-2009 |
Dan Gohman <gohman@apple.com> |
In the case of an extractelement on an insertelement value, the element indices may be equal if either one is not a constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
56ab1a281511dde8c173cd2dc8ef55a916049037 |
|
29-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert r63273. This was already implemented by Dale. There's no need for my change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6e1bb38fb8dd64ece28ea5779a8bbf9b5ff7fb96 |
|
29-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
- Add DebugLoc to getTargetNode(). - 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.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e8c17335c53f0f37262ee342f46b0d00ac0c1493 |
|
29-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add DebugLoc-sensitive versions of many node creation functions. Currently omitted: memcpy, memmove, memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7ade28cd62f5188951387e1056a46001388a21f9 |
|
28-Jan-2009 |
Bill Wendling <isanbard@gmail.com> |
Add DebugLoc to the getNode() methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3edb43e6208493dec85a2e87942f7a4d59073727 |
|
28-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add DebugLoc-aware constructors for SDNode derived 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
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ce9bc12c6f3c3544f7518c0c60203f2f9dff342f |
|
27-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Add an assertion to the form of SelectionDAG::getConstant that takes 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
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e7852d014432a06c783de3c350eb96e686f10f92 |
|
26-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Take the next steps in making SDUse more consistent with LLVM Use, and 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
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
399461095b033438d1f5863cd0d6f82a616f74dc |
|
25-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Eliminate the loop that searches through each of the operands of each use in the SelectionDAG ReplaceAllUses* functions. Thanks to Chris for spotting this opportunity. Also, factor out code from all 5 of the ReplaceAllUses* functions into AddNonLeafNodeToCSEMaps, which is now renamed AddModifiedNodeToCSEMaps to more accurately reflect its purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
74692c0d65d92865674ff8e0491a21b98950284a |
|
25-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Whitespace tidiments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e77f89de8cb6690ac45b87b03c588e9d287c1eeb |
|
25-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Move the N->use_empty() assert from DeleteNode to DeleteNodeNotInCSEMaps, since DeleteNode just calls DeleteNodeNotInCSEMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a90c8e690bd9103bb4a5d943f98279a55bf42ad1 |
|
23-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fold x-0 to x in unsafe-fp-math mode. This comes up in the testcase from PR3376, and in fact is sufficient to completely avoid the problem in that testcase. There's an underlying problem though; TLI.isOperationLegal considers Custom to be Legal, which might be ok in some cases, but that's what DAGCombiner is using in many places to test if something is legal when LegalOperations is true. When DAGCombiner is running after legalize, this isn't sufficient. I'll address this in a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
760f86f3395750ef6d03ecfe6f82d2867fbf568b |
|
22-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Don't create ISD::FNEG nodes after legalize if they aren't legal. Simplify x+0 to x in unsafe-fp-math mode. This avoids a bunch of redundant work in many cases, because in unsafe-fp-math mode, ISD::FADD with a constant is considered free to negate, so the DAGCombiner often negates x+0 to -0-x thinking it's free, when in reality the end result is -x, which is more expensive than x. Also, combine x*0 to 0. This fixes PR3374. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4c2454623841f05c6c665659b34c214950d12d7e |
|
22-Jan-2009 |
Bob Wilson <bob.wilson@apple.com> |
Add SelectionDAG::getNOT method to construct bitwise NOT operations, corresponding to the "not" and "vnot" PatFrags. Use the new method in some places where it seems appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e70909b8c94b18ae5fcfe8010251d2527704d58b |
|
22-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
fix a typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c53361294957b63a9c1e405256c6f0a81db1685c |
|
19-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Remove SDNode's virtual destructor. This makes it impossible for SDNode subclasses to keep state that requires non-trivial destructors, however it was already effectively impossible, since the destructor isn't actually ever called. There currently aren't any SDNode subclasses affected by this, and in general it's desireable to keep SDNode objects light-weight. This eliminates the last virtual member function in the SDNode class, so it eliminates the need for a vtable pointer, making SDNode smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dbe664adcddd8610952968d86791478c874cf1cd |
|
19-Jan-2009 |
Dan Gohman <gohman@apple.com> |
Fix SelectionDAG::ReplaceAllUsesWith to behave correctly when uses are added to the From node while it is processing From's use list, because of automatic local CSE. The fix is to avoid visiting any new uses. Fix a few places in the DAGCombiner that assumed that after a RAUW call, the From node has no users and may be deleted. This fixes PR3018. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e9530ecae4897fe8157bd4d7616043bd8c0484e2 |
|
15-Jan-2009 |
Dan Gohman <gohman@apple.com> |
More consts on TargetLowering references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bbdc8207d587026212e176026d3e37ae043a6661 |
|
14-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Removoe MachineModuleInfo methods (and related DebugInfoDesc class hierarchy) that were used to handle debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
35fe7344aedec52c3fa048237e8554f97dff9182 |
|
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Undo previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bb8c5959c83504fbc438e6efade30fa4b70a25b6 |
|
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use dwarf writer to decide whether the module has debug info or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
83489bb7700c69b7a4a8da59365c42d3f5c8129b |
|
13-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Use DebugInfo interface to lower dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6e7a1617ac4a34792d9097b8d3644b72f57a45f7 |
|
09-Jan-2009 |
Devang Patel <dpatel@apple.com> |
Request DwarfWriter. This will be used to handle dbg_* intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0b1d4a798d1dd2f39521b6b381cd1c1911c9ab52 |
|
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the atomic opcodes in SelectionDAG. This removes all the _8, _16, _32, and _64 opcodes and replaces each group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode is now used to carry the size information. In tablegen, the size-specific opcodes are replaced by size-independent opcodes that utilize the ability to compose them with predicates. This shrinks the per-opcode tables and makes the code that handles atomics much more concise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6db08c4d2f2e1f1f83e845031bfee9017b126c5a |
|
11-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Avoid generating a convert_rndsat node when the src and dest type are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
74c376529101acbe141a256d0bf23a44eb454c84 |
|
09-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Add sub/mul overflow intrinsics. This currently doesn't have a target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
47d9dcc584cdb7fd645ca1d5c2a0ce363570aeb7 |
|
09-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR3117: not all nodes being legalized. The essential problem was that the DAG can contain random unused nodes which were never analyzed. When remapping a value of a node being processed, such a node may become used and need to be analyzed; however due to operands being transformed during analysis the node may morph into a different one. Users of the morphing node need to be updated, and this wasn't happening. While there I added a bunch of documentation and sanity checks, so I (or some other poor soul) won't have to scratch their head over this stuff so long trying to remember how it was all supposed to work next time some obscure problem pops up! The extra sanity checking exposed a few places where invariants weren't being preserved, so those are fixed too. Since some of the sanity checking is expensive, I added a flag to turn it on. It is also turned on when building with ENABLE_EXPENSIVE_CHECKS=1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e9f1015d1f184a51aaadfd03be0846bd5e7d08a2 |
|
09-Dec-2008 |
Mon P Wang <wangmp@apple.com> |
Fix getNode to allow a vector for the shift amount for shifts of vectors. Fix the shift amount when unrolling a vector shift into scalar shifts. Fix problem in getShuffleScalarElt where it assumes that the input of a bit convert must be a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9304f2c294752a3cfbc2c91ebed903cc53317dc1 |
|
04-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
When allocating a stack temporary, use the correct number of bytes for types such as i1 which are not a multiple of 8 bits in length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
13d6d446f62f908e8cf74acb3a4df65ea5f497ce |
|
02-Dec-2008 |
Bill Wendling <isanbard@gmail.com> |
Expand getVTList, getNodeValueTypes, and SelectNodeTo to handle more value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aaffa05d0a652dd3eae76a941d02d6b0469fa821 |
|
01-Dec-2008 |
Duncan Sands <baldrick@free.fr> |
There are no longer any places that require a MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
24ac408ce891321d1a5d62beaf3487efce6f2b22 |
|
24-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate some unused variable compile time warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
03228089d5235f8c90477f88809139464e9c6ea5 |
|
23-Nov-2008 |
Duncan Sands <baldrick@free.fr> |
Rename SetCCResultContents to BooleanContents. In practice these booleans are mostly produced by SetCC, however the concept is more general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
253174bf50c932abaa680f465e2888c0e5272267 |
|
22-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Cleanup of the [SU]ADDO type legalization code. Patch by Duncan! "It simplifies the type legalization part a bit, and produces better code by teaching SelectionDAG about the extra bits in an i8 SADDO/UADDO node. In essence, I spontaneously decided that on x86 this i8 boolean result would be either 0 or 1, and on other platforms 0/1 or 0/-1, depending on whether the platform likes it's boolean zero extended or sign extended." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ebd0eeaeb94b7f607409408e3c25024db671b66 |
|
21-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1c55a9c0cc355ad72c55ae7665143b9a992d223b |
|
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename "ADDO" to "SADDO" and "UADDO". The "UADDO" isn't equivalent to "ADDC" because the boolean it returns to indicate an overflow may not be treated like as a flag. It could be stored to memory, for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7cdc3c8ad208d9655be542fc8b082c4457af4b6e |
|
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the sadd_with_overflow intrinsic. This is converted into "ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the addition and then checks if the result is less than one of the operands. (If it is, then there was an overflow.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ea7b527aa56ad0fe547d3d99b21e845a49a031cb |
|
21-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Add UADDO and SADDO nodes. These will be used for determining an overflow condition in an addition operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
77cdf30742284a173fe818417eb482224cdee8d4 |
|
10-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode to support targets that support these conversions. Users should avoid using this node as the current targets don't generating code for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aeb06d246254e4829a49164a11eacced9a43d9d4 |
|
10-Nov-2008 |
Mon P Wang <wangmp@apple.com> |
Added support for the following definition of shufflevector <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3d0f5afefb2c8be6233c2bcebdcf57a5c0b2b9a2 |
|
30-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix PR2986: do not use a potentially illegal type for the shift amount type. Add a check that shifts and rotates use the type returned by getShiftAmountTy for the amount. This exposed some problems in CellSPU and PPC, which have already been fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d22ec5f62813f8cf2ed8091f44a14377209b1a59 |
|
29-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Add sanity checking for BUILD_PAIR (I noticed the other day that PPC custom lowering could create a BUILD_PAIR of two f64 with a result type of... f64! - already fixed). Fix a place that triggers the sanity check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7fe5e1812f5d018784d5186ccb31525665e61863 |
|
28-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
fix some whitespace stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0dc4045bd27c177416745d2e72277b0a92c3ab83 |
|
27-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Fix UpdateNodeOperands so that it does CSE of calls (and a bunch of other node types). While there, I added a doNotCSE predicate and used it to reduce code duplication (some of the duplicated code was wrong...). This fixes ARM/cse-libcalls.ll when using LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fea90880302fc7b6d588292ae0e55d33ebe80f12 |
|
24-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Initialize uninitialized variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0954aefd81c7aa80c0e29408610add1e793c1c44 |
|
22-Oct-2008 |
Duncan Sands <baldrick@free.fr> |
Temporarily allow the operands of a BUILD_VECTOR to have a different type to the vector element type. This should be fairly harmless because in the past guys like this were being built all over the place (and were cleaned up when I added this check). The reason for relaxing this check is that it helps LegalizeTypes legalize vector shuffles: the mask is a BUILD_VECTOR that it is *not always possible* to legalize while keeping it a BUILD_VECTOR (vector_shuffle requires the mask to be a BUILD_VECTOR, as opposed to a vector with the right vector type). With this check it is even harder to legalize the mask - turning the check off means that LegalizeTypes manages to legalize almost all vector shuffles encountered in practice. The correct solution is to change vector_shuffle to be a variadic node with the mask built into it as operands. While waiting for that change, this hack stops the problem with vector_shuffle from blocking the turning on of LegalizeTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4401361a2fb92c82317dbfbb1616f54ced2b51f3 |
|
21-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't create TargetGlobalAddress nodes with offsets that don't fit in the 32-bit signed offset field of addresses. Even though this may be intended, some linkers refuse to relocate code where the relocated address computation overflows. Also, fix the sign-extension of constant offsets to use the actual pointer size, rather than the size of the GlobalAddress node, which may be different, for example on x86-64 where MVT::i32 is used when the address is being fit into the 32-bit displacement field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a1dc6025422cd0e6f951c69a8427f7f885cf52c3 |
|
19-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Set N->OperandList to 0 after deletion. Otherwise, it's possible that it will be either deleted or referenced afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
668aff66232d17731153c5af1cc45aa4d351f00b |
|
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Don't truncate GlobalAddress offsets to int in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6520e20e4fb31f2e65e25c38b372b19d33a83df4 |
|
18-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Teach DAGCombine to fold constant offsets into GlobalAddress nodes, and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.) This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions. This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective. Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t. The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c4d1021ead43cfa7da08a8f7ddc9a059a8ba14c5 |
|
17-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemIntrinsicNode which is useful to represent target intrinsics that touches memory and need an associated MemOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
23a98551ab65eeb8fe5019df8b7db4891582a4bd |
|
10-Oct-2008 |
Dale Johannesen <dalej@apple.com> |
Add a "loses information" return value to APFloat::convert and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ca0a5d93569d728659352ca5fbfe17daeed5f6ac |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Use -1ULL instead of uint64_t(-1), at Anton's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aeaf245db33fa8bccdd14bb8899ee0585a75a7b1 |
|
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Make some implicit conversions explicit, to avoid compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
38ac062c2f4de93cd4351693f084f0c4474be02c |
|
01-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fold trivial two-operand tokenfactors where the operands are equal immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6158d8492cc021bb47caee6d4755135ef1d855a4 |
|
01-Oct-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the -fno-builtin option in the front-end, not in the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd8ca5a0ef30604b860100d13544c5d5625c0b70 |
|
30-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Initialize "--no-builtin" to "false". - Testcase for r56885. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6f287b22d2e57600b4cd5dc209d0d869e7736c0b |
|
30-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Add the new `-no-builtin' flag. This flag is meant to mimic the GCC `-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero" instead of "__bzero" on Darwin10+. This arguably violates the meaning of this flag, but is currently sufficient. The meaning of this flag should become more specific over time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f06c835f769aa1cf67801ed1f6bd366a447c18b1 |
|
30-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Optimize SelectionDAG's AssignTopologicalOrder even further. Completely eliminate the TopOrder std::vector. Instead, sort the AllNodes list in place. This also eliminates the need to call AllNodes.size(), a linear-time operation, before performing the sort. Also, eliminate the Sources temporary std::vector, since it essentially duplicates the sorted result as it is being built. This also changes the direction of the topological sort from bottom-up to top-down. The AllNodes list starts out in roughly top-down order, so this reduces the amount of reordering needed. Top-down is also more convenient for Legalize, and ISel needed only minor adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
86098bd6a63d2cdf0c9be9ef3151bd2728281fd7 |
|
26-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add "inreg" field to CallSDNode (doesn't increase its size). Adjust various lowering functions to pass this info through from CallInst. Use it to implement sseregparm returns on X86. Remove X86_ssecall calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
688d1c4ccf358a35fcdb54a28afc6e47d661b1cf |
|
24-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Forgot this part with my last patch. Sorry about the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
50284d81f863a6576582e1a171a22eb0f012ddf3 |
|
17-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change SelectionDAG::getConstantPool to always set the alignment of the ConstantPoolSDNode, using the target's preferred alignment for the constant type. In LegalizeDAG, when performing loads from the constant pool, the ConstantPoolSDNode's alignment is used in the calls to getLoad and getExtLoad. This change prevents SelectionDAG::getLoad/getExtLoad from incorrectly choosing the ABI alignment for constant pool loads when Alignment == 0. The incorrect alignment is only a performance issue when ABI alignment does not equal preferred alignment (i.e., on x86 it was generating MOVUPS instead of MOVAPS for v4f32 constant loads when the default ABI alignment for 128bit vectors is forced to 1 byte.) Patch by Paul Redmond! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
056292fd738924f3f7703725d8f630983794b5a5 |
|
16-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
Reverting r56249. On further investigation, this functionality isn't needed. Apologies for the thrashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9468a9b6beed640eca64274c8dcc5aed3b94450b |
|
16-Sep-2008 |
Bill Wendling <isanbard@gmail.com> |
- Change "ExternalSymbolSDNode" to "SymbolSDNode". - Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5eb0cecbc5dd370e33d4e0ab1abee7ce8597ca9c |
|
15-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Re-enable SelectionDAG CSE for calls. It matters in the case of libcalls, as in this testcase on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
095cc29f321382e1f7d295e262a28197f92c5491 |
|
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Define CallSDNode, an SDNode subclass for use with ISD::CALL. Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4fbd796a1251a27e6590765a0a34876f436a0af9 |
|
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and ConstantFP* instead of APInt and APFloat directly. This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode nodes when ConstantInt* and ConstantFP* respectively are already available, as is the case in SelectionDAGBuild.cpp. Also, it reduces the amount of time to legalize constants into constant pools, and the amount of time to add ConstantFP operands to MachineInstrs, due to eliminating ConstantInt::get and ConstantFP::get calls. It increases the amount of work needed to create new constants in cases where the client doesn't already have a ConstantInt* or ConstantFP*, such as legalize expanding 64-bit integer constants to 32-bit constants. And it adds a layer of indirection for the accessor methods. But these appear to be outweight by the benefits in most cases. It will also make it easier to make ConstantSDNode and ConstantFPNode more consistent with ConstantInt and ConstantFP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f5aeb1a8e4cf272c7348376d185ef8d8267653e0 |
|
12-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Rename ConstantSDNode::getValue to getZExtValue, for consistency with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
19e861a4ffb896f16a691d5ac869e894df3cd464 |
|
09-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make safer variant of alias resolution routine to be default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a47916d3792b47ec60d5152471db48d50dd9bb35 |
|
08-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix the string for ISD::UDIVREM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6448d91ad1e5497fe2f7015d61b57cb5f3040879 |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Clean up uses of TargetLowering::getTargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dc71563794a6a30f66278af5a9cdccde36b1797e |
|
31-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ba36cb5242eb02b12b277f82b9efe497f7da4d7f |
|
28-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e00a8a2a2e11a37fd1ddf2504bd22d225d0994d0 |
|
28-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
Split the ATOMIC NodeType's to include the size, e.g. ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD. Increased the Hardcoded Constant OpActionsCapacity to match. Large but boring; no functional change. This is to support partial-word atomics on ppc; i8 is not a valid type there, so by the time we get to lowering, the ATOMIC_LOAD nodes looks the same whether the type was i8 or i32. The information can be added to the AtomicSDNode, but that is the largest SDNode; I don't fully understand the SDNode allocation, but it is sensitive to the largest node size, so increasing that must be bad. This is the alternative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7c3234c6be0dc0bdf4b5d6f848cd728a77f349d7 |
|
28-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Reorganize the lifetimes of the major objects SelectionDAGISel works with. SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering objects now get created once per SelectionDAGISel instance, and can be reused across blocks and across functions. Previously, they were created and destroyed each time they were needed. This reorganization simplifies the handling of PHI nodes, and also SwitchCases, JumpTables, and BitTestBlocks. This simplification has the side effect of fixing a bug in FastISel where successor PHI nodes weren't being updated correctly. This is also a step towards making the transition from FastISel into and out of SelectionDAG faster, and also making plain SelectionDAG faster on code with lots of little blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
99a6cb92d173c142073416c81efe6d3daeb80b49 |
|
27-Aug-2008 |
Gabor Greif <ggreif@gmail.com> |
disallow direct access to SDValue::ResNo, provide a getter instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3200d92947cd64f82ca748d65d1e58c3d45f440f |
|
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Optimize SelectionDAG's topological sort to use one pass instead of two, and to not need a scratch std::vector. Also, use the SelectionDAG's topological sort in LegalizeDAG instead of having a separate implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1146728bfaeb471f675b805ceb27a08d28bbf468 |
|
26-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Actually recycle SDNode allocations. SelectionDAG is using RecyclingAllocator, but this change is needed for the nodes to actually be recycled. This cuts SelectionDAG's memory usage high-water-mark in half in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c56711c212849fe68b8d00597efda6fcb28f891e |
|
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
make sure to flush the stream after dumping, to make sure it goes out immediately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
944fac71e082cc2664cc71b4d3f6c72bab7143fb |
|
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Switch the asmprinter (.ll) and all the stuff it requires over to use raw_ostream instead of std::ostream. Among other goodness, this speeds up llvm-dis of kc++ with a release build from 0.85s to 0.49s (88% faster). Other interesting changes: 1) This makes Value::print be non-virtual. 2) AP[S]Int and ConstantRange can no longer print to ostream directly, use raw_ostream instead. 3) This fixes a bug in raw_os_ostream where it didn't flush itself when destroyed. 4) This adds a new SDNode::print method, instead of only allowing "dump". A lot of APIs have both std::ostream and raw_ostream versions, it would be useful to go through and systematically anihilate the std::ostream versions. This passes dejagnu, but there may be minor fallout, plz let me know if so and I'll fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f350b277f32d7d47f86c0e54f4aec4d470500618 |
|
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move the point at which FastISel taps into the SelectionDAGISel process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6f17966a804f53518aa06fd0b5f035d5b1a51589 |
|
23-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Move SelectionDAG's constructor out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
509e84fa7146175c86dec5ef2167290f294dc89e |
|
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Add libm-oriented ISD opcodes for rounding operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ca84121596640c99887f909f3b9a3ae830391e64 |
|
21-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Elements in DeadNodeSet are checked for use_empty() before they are actually deleted, so it's not necessary to remove re-used nodes from the set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b8d2f550b84523e8a73198f98e5d450ec3b4fee7 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Change the FoldingSetNodeID usage for objects which carry alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
65a7bd8b8e111c51a51278ab46f1a1c91744441b |
|
19-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
don't use the result of WriteTypeSymbolic or WriteAsOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fad86b003a839cef40ec8ce8408322f4913368ca |
|
17-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
Rework the routines that convert AP[S]Int into a string. Now, instead of returning an std::string by value, it fills in a SmallString/SmallVector passed in. This significantly reduces string thrashing in some cases. More specifically, this: - Adds an operator<< and a print method for APInt that allows you to directly send them to an ostream. - Reimplements APInt::toString to be much simpler and more efficient algorithmically in addition to not thrashing strings quite as much. This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the asmprinter. This also fixes a bug I introduced into the asmwriter in a previous patch w.r.t. alias printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7f8613e5b8398b688080e3c944ab8c11593e1ed0 |
|
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Improve support for vector casts in LLVM IR and CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a60832b0187642d01fd726dc766cd62587f6add0 |
|
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bogus srem rule - a negative value srem'd by a power-of-2 can have a non-negative result; for example, -16%16 is 0. Also, clarify the related comments. This fixes PR2670. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6ab6422f25f3deb1041130ff6bb285b22586ab32 |
|
13-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with non-constant indices. Only a few of the peephole checks require a constant index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fed90b6d097d50881afb45e4d79f430db66dd741 |
|
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
475871a144eb604ddaf37503397ba0941442e5fb |
|
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename SDOperand to SDValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8968450305c28444edc3c272d8752a8db0c2f34a |
|
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Tidy SDNode::use_iterator, and complete the transition to have it parallel its analogue, Value::value_use_iterator. The operator* method now returns the user, rather than the use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2a6299543fa22f389158409e897fe7099fda3812 |
|
27-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Rename isOnlyUseOf to isOnlyUserOf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
79acd2b51ff81db67d8383ec117039cb99fdc04d |
|
22-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix grammaros in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d038e04188047eca4749d025ef1f05f7ae660bca |
|
21-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add VerifyNode, a place to put sanity checks on generic SDNode's (nodes with their own constructors should do sanity checking in the constructor). Add sanity checks for BUILD_VECTOR and fix all the places that were producing bogus BUILD_VECTORs, as found by "make check". My favorite is the BUILD_VECTOR with only two operands that was being used to build a vector with four elements! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e8be6c63915e0389f1eef6b53c64300d13b2ce99 |
|
17-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk replacement of multiple values. This is slightly more efficient than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically could be optimized even further. However, an important property of this new function is that it handles the case where the source value set and destination value set overlap. This makes it feasible for isel to use SelectNodeTo in many very common cases, which is advantageous because SelectNodeTo avoids a temporary node and it doesn't require CSEMap updates for users of values that don't change position. Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to handle operand lists more efficiently, and to correctly handle a number of corner cases to which its new wider use exposes it. This commit also includes a change to the encoding of post-isel opcodes in SDNodes; now instead of being sandwiched between the target-independent pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel opcodes are now represented as negative values. This makes it possible to test if an opcode is pre-isel or post-isel without having to know the size of the current target's post-isel instruction set. These changes speed up llc overall by 3% and reduce memory usage by 10% on the InstructionCombining.cpp testcase with -fast and -regalloc=local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4093d8301021c9dde8d3577903366cfb8b5d82d0 |
|
15-Jul-2008 |
Dan Gohman <gohman@apple.com> |
SelectionDAG::AssignNodeIds is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
90a7b8fba69503c950aa598fac2edc77123b6bf0 |
|
15-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Don't sort SDNodes by their addresses in SelectionDAG::dump. Instead, just use the AllNodes order, which is at least relatively stable across runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a54cf176613f9ae8301519a61b8935652c0fb8ae |
|
12-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Include a frame index in the "fixed stack" pseudo source value instead of using the frame index for the SVOffset, which was inconsistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e1d97b1a748e96d5ca479c38cfd1775d6469bf80 |
|
10-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Don't barf when dumping a constant that contains a ginormous value (eg: i128 -1). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b9c33c32292d0ae5da2d75623a84a0e7796a2b63 |
|
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Simplify hasNUsesOfValue and hasAnyUsesOfValue even more. This makes their special-case checks of use_size() less beneficial, so remove them. This eliminates all but one use of use_size(), which is in AssignTopologicalOrder, which uses it only once for each node, and so can reasonably afford to recompute it, as this allows the UsesSize field of SDNode to be removed altogether. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1373c1c3951ddd785d4f7f83c0bc89df699d22a0 |
|
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
hasAnyUseOfValue can check SDUse nodes of its users directly instead of examining every operand of every user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1ea58a52a4296afff10e9db1e54928f38e6d74c6 |
|
10-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MemoryVT out of LSBaseNode into MemSDNode, allowing the getMemOperand function to be moved into the base class as well and made non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
492f276cbc7be564c6af7b302618ee5436e4619c |
|
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move the IsVolatile and SVOffset fields into the MemSDNode base class, and store IsVolatile and Alignment in a more compact form. This makes AtomicSDNode slightly larger, but it shrinks LoadSDNode and StoreSDNode, which are much more common and are the largest of the SDNode subclasses. Also, this lets the isVolatile() and getAlignment() accessors be non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1afe5c3ff8f37a94e47379ff9535b5e03faca020 |
|
09-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Missed alignment argument on stores lowered from memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f877b735ad4987f26cafcbaf22aa4c2199458b5d |
|
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
const-ify SelectionDAG::getNodeValueTypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9c6e70eca9a49c146b26621cbcbb9464ceeac024 |
|
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Factor out the code for computing an alignment value, and make it available to getAtomic in addition to just getLoad and getStore, to prevent MachineMemOperands with 0 alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
71e8685633e7938ee752004cceedccbd0d850527 |
|
08-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Do not CSE DEBUG_LOC, DBG_LABEL, DBG_STOPPOINT, DECLARE, and EH_LABEL SDNode's. This improves compile time slightly at -O0 -g. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0e5f1306b059b62d7725f324e087efbc8e7a782d |
|
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for SDNodes. The pool is allocated once for each function, and reused across SelectionDAGs. This drastically reduces the number of calls to malloc/free made during instruction selection, and improves memory locality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0fe9c6e7babb3c0731d9cb864ec498ec4184760f |
|
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fix SDNode::MorphNodeTo (a function used by by SelectNodeTo) to properly track dead nodes that are on the original SDNode's operand list but not the new one, and have no other uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6d9cdd56173fb915a9e3a8f0f6b5a8ed9bed1098 |
|
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Remove most of the uses of SDOperandPtr, usually replacing it with a simple const SDOperand*, which is what's usually needed. For AddNodeIDOperands, which is small, just duplicate the function to accept an SDUse*. For SelectionDAG::getNode - Add an overload that accepts SDUse* that copies the operands into a temporary SDOperand array, but also has special-case checks for 0 through 3 operands to avoid the copy in the common cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
364d73ddab43b699ab90240f11b7a2eb5cf69bd8 |
|
05-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed generating incorrect aligned stores that I backout of r53031 that fixed problems in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a122f2f51e4cc9edc5f1c4020e51909b585a0f90 |
|
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Backed out 53031. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9b44c1f2a0ebe31e670994cfe131c7c3e0e80494 |
|
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Avoid unnecessarily copying APInt objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cd920d9ecfcefff13c3619a32b58399cac2e3630 |
|
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Replace a few uses of SelectionDAG::getTargetNode with SelectionDAG::SelectNodeTo in the instruction selector. This updates existing nodes in place instead of creating new ones. Go back to selecting ISD::DBG_LABEL nodes into TargetInstrInfo::DBG_LABEL nodes instead of leaving them unselected, now that SelectNodeTo allows us to update them in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4bdcb61af33399d4e01fdf3c47ca1f1f5356e370 |
|
02-Jul-2008 |
Duncan Sands <baldrick@free.fr> |
Add a new getMergeValues method that does not need to be passed the list of value types, and use this where appropriate. Inappropriate places are where the value type list is already known and may be long, in which case the existing method is more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bee98c66c0c3d1f43244cdf237e572a9df031e40 |
|
02-Jul-2008 |
Mon P Wang <wangmp@apple.com> |
Fixed problem in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
349db1738d58d52cae2ab1e06cbd128dd9f0aab6 |
|
02-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
instead of aborting on shifts of i1, just implicitly fold them. The dag combiner can produce a shift of i1 when folding icmp i1's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4474c792c6ef21862dd166fd0de59d70c4c8d489 |
|
02-Jul-2008 |
Owen Anderson <resistor@mac.com> |
No need to use std::distance. We can just count the number of operands much more cheaply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4406604047423576e36657c7ede266ca42e79642 |
|
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7f460203b0c5350e9b2c592f438e40f7a7de6e45 |
|
30-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its purpose, and give it a custom SDNode subclass so that it doesn't need to have line number, column number, filename string, and directory string, all existing as individual SDNodes to be the operands. This was the only user of ISD::STRING, StringSDNode, etc., so remove those and some associated code. This makes stop-points considerably easier to read in -view-legalize-dags output, and reduces overhead (creating new nodes and copying std::strings into them) on code containing debugging information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f9516208e57364ab1e7d8748af1f59a2ea5fb572 |
|
30-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Revert the SelectionDAG optimization that makes it impossible to create a MERGE_VALUES node with only one result: sometimes it is useful to be able to create a node with only one result out of one of the results of a node with more than one result, for example because the new node will eventually be used to replace a one-result node using ReplaceAllUsesWith, cf X86TargetLowering::ExpandFP_TO_SINT. On the other hand, most users of MERGE_VALUES don't need this and for them the optimization was valuable. So add a new utility method getMergeValues for creating MERGE_VALUES nodes which by default performs the optimization. Change almost everywhere to use getMergeValues (and tidy some stuff up at the same time). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0ff39b3feb10477c224138156941234f5fa46f58 |
|
30-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. - Correctly handle memcpy from constant string which is zero-initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6d116bc7ced56a820d33b0dd35ee36af8a810eab |
|
29-Jun-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Revert (52748 and friends): Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. This unbreaks llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
03a5707955788fc333c6767c054341b12075eff9 |
|
28-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Really fix the bootstrap failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b746b82113df707df9555450991eab75b18ffa1b |
|
28-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Add back the capability to include nul characters in strings with GetConstantStringInfo. This will hopefully restore llvm-gcc to happy bootstrap land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
07c68f9b6f2d1009f8c239c27e351fd8246879f5 |
|
27-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
simplify this check, GetConstantStringInfo validates that a global is constant already. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0d2b0aba424bd3959bb5c807873def8f53e57a3c |
|
26-Jun-2008 |
Eric Christopher <echristo@apple.com> |
Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ab26227c8c9adce91a606a3691d4da08a9c8551c |
|
25-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into a shift. - Add a readme entry for a missing vector_shuffle optimization that results in awful codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
041cde26eaf4ef6171ff1a44aeedd08d7a1cba6c |
|
25-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Add support for expanding PPC 128 bit floats. For this it is convenient to permit floats to be used with EXTRACT_ELEMENT, so I tweaked things to allow that. I also added libcalls for ppcf128 to i32 forms of FP_TO_XINT, since they exist in libgcc and this case can certainly occur (and does occur in the testsuite) - before the i64 libcall was being used. Also, the XINT_TO_FP result seemed to be wrong when the argument is an i128: the wrong fudge factor was added (the i32 and i64 cases were handled directly, but the i128 code fell through to some generic softening code which seemed to think it was i64 to f32!). So I fixed it by adding a fudge factor that I found in my breakfast cereal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd4418fc9b4725c44210c169c4d6500be468ca70 |
|
25-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Remove the OrigVT member from AtomicSDNode, as it is redundant with the base SDNode's VTList. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
28873106309db515d58889a4c4fa3e0a92d1b60e |
|
25-Jun-2008 |
Mon P Wang <wangmp@apple.com> |
Added MemOperands to Atomic operations since Atomics touches memory. Added abstract class MemSDNode for any Node that have an associated MemOperand Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and atomic.lss => atomic.load.sub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
317adcc9c6b29fb491d615996ba70b5c415a9eb2 |
|
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use clear() to zero an existing APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
507a58ac9b20ddcea2e56a014be26b8f8cc0ecb8 |
|
14-Jun-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
add missing atomic intrinsic from gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
edfcf598faab9ce294712551ecf67093acd1c66e |
|
11-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Sometimes (rarely) nodes held in LegalizeTypes maps can be deleted. This happens when RAUW replaces a node N with another equivalent node E, deleting the first node. Solve this by adding (N, E) to ReplacedNodes, which is already used to remap nodes to replacements. This means that deleted nodes are being allowed in maps, which can be delicate: the memory may be reused for a new node which might get confused with the old deleted node pointer hanging around in the maps, so detect this and flush out maps if it occurs (ExpungeNode). The expunging operation is expensive, however it never occurs during a llvm-gcc bootstrap or anywhere in the nightly testsuite. It occurs three times in "make check": Alpha/illegal-element-type.ll, PowerPC/illegal-element-type.ll and X86/mmx-shift.ll. If expunging proves to be too expensive then there are other more complicated ways of solving the problem. In the normal case this patch adds the overhead of a few more map lookups, which is hopefully negligable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8e4eb09b1e3571965f49edcdfb56b1375b1b7551 |
|
08-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Remove comparison methods for MVT. The main cause of apint codegen failure is the DAG combiner doing the wrong thing because it was comparing MVT's using < rather than comparing the number of bits. Removing the < method makes this mistake impossible to commit. Instead, add helper methods for comparing bits and use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3b3adbb7456411957681e590b29697b3af307dd1 |
|
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Tighten up the abstraction slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
83ec4b6711980242ef3c55a4fa36b2d7a39c1bfb |
|
06-Jun-2008 |
Duncan Sands <baldrick@free.fr> |
Wrap MVT::ValueType in a struct to get type safety and better control the abstraction. Rename the type to MVT. To update out-of-tree patches, the main thing to do is to rename MVT::ValueType to MVT, and rewrite expressions like MVT::getSizeInBits(VT) in the form VT.getSizeInBits(). Use VT.getSimpleVT() to extract a MVT::SimpleValueType for use in switch statements (you will get an assert failure if VT is an extended value type - these shouldn't exist after type legalization). This results in a small speedup of codegen and no new testsuite failures (x86-64 linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fb4db316d835fa9774d608ac58336a24c7867192 |
|
05-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
33b625bee429986b2b3bd11108816d256df39334 |
|
03-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fold adds and subtracts of zero immediately, instead of waiting for dagcombine to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
28307418668f68e055688922ff8394d8a1ba8f15 |
|
31-May-2008 |
Dan Gohman <gohman@apple.com> |
Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
21323f3a829df0e6d9b4566a551619a01e269ba6 |
|
29-May-2008 |
Dan Gohman <gohman@apple.com> |
Expand small memmovs using inline code. Set the X86 threshold for expanding memmove to a more plausible value, now that it's actually being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f26ffe987cf3643a7bd66bd9f97c34605ba7d08e |
|
29-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement vector shift up / down and insert zero with ps{rl}lq / ps{rl}ldq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
43e2a035309f4e353a8bd5547d10125414597e74 |
|
27-May-2008 |
Duncan Sands <baldrick@free.fr> |
Fix some constructs that gcc-4.4 warns about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a332f17c8c80bb457617052fb35a3f2cecd05493 |
|
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Generalize the new code in instcombine's ComputeNumSignBits for handling and/or to handle more cases (such as this add-sitofp.ll testcase), and port it to selectiondag's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c84941be0af3a721183297ebb5e8511157a0c636 |
|
20-May-2008 |
Dan Gohman <gohman@apple.com> |
Port the fix for the select operator from instcombine's ComputeNumSignBits to SelectionDAG's ComputeNumSignBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f0df03134e698ea84e9cc1c28a853f83c02560d5 |
|
15-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Make use of vector load and store operations to implement memcpy, memmove, and memset. Currently only X86 target is taking advantage of these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d64a78c9ed62f2615ca1ea524d1f1942f798c8de |
|
14-May-2008 |
Dan Gohman <gohman@apple.com> |
When bit-twiddling CondCode values for integer comparisons produces SETOEQ, is it does with (SETEQ & SETULE), map it to SETEQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
77f0b7a50a08614b5ffd58f1864b68a9a30d0cb0 |
|
13-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Instead of a vector load, shuffle and then extract an element. Load the element from address with an offset. pshufd $1, (%rdi), %xmm0 movd %xmm0, %eax => movl 4(%rdi), %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
844731a7f1909f55935e3514c9e713a62d67662e |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b43e9c196542acc80c9e4643809661065710848f |
|
12-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Add support for vicmp/vfcmp codegen, more legalize support coming. This is necessary to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
42ac929ed968939d22a715769e583aeed8f6c823 |
|
07-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the ComputeMaskedBits logic for multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
23e1df8b8d1d1fc8b9a20b80a47b0a2fdffe7f84 |
|
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Correct the value of LowBits in srem and urem handling in ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
63307c335aa08b0d6a75f81d64d79af7e90eb78b |
|
05-May-2008 |
Mon P Wang <wangmp@apple.com> |
Added addition atomic instrinsics and, or, xor, min, and max. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1d9cd506774f2d51b7e7315b07fdbcc05efebe4a |
|
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a mistake in the computation of leading zeros for udiv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7ceda160b34f67a0514df9a518da2946e52a04ea |
|
02-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1f13c686df75ddbbe15b208606ece4846d7479a8 |
|
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix the SVOffset values for loads and stores produced by memcpy/memset expansion. It was a bug for the SVOffset value to be used in the actual address calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
23e8b715267a64381e2fff8c208da1f24b387b83 |
|
28-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Teach InstCombine's ComputeMaskedBits what SelectionDAG's ComputeMaskedBits knows about cttz, ctlz, and ctpop. Teach SelectionDAG's ComputeMaskedBits what InstCombine's knows about SRem. And teach them both some things about high bits in Mul, UDiv, URem, and Sub. This allows instcombine and dagcombine to eliminate sign-extension operations in several new cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9dd2ce46c58dd05f0835df77f308396715890d66 |
|
20-Apr-2008 |
Dale Johannesen <dalej@apple.com> |
Check we aren't trying to convert PPC long double. This fixes the testsuite failure on ppcf128-4.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
35b31bea0dc9e16d4c384a6a78404bdd791b6693 |
|
18-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Remove the implicit conversion from SDOperandPtr to SDOperand*; this may fix a build error on Visual Studio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9cac5259fe237120a0c347d6d14e549005148f1b |
|
16-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Ongoing work on improving the instruction selection infrastructure: Rename SDOperandImpl back to SDOperand. Introduce the SDUse class that represents a use of the SDNode referred by an SDOperand. Now it is more similar to Use/Value classes. Patch is approved by Dan Gohman. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b91c89dfb9a7d119eb2184e3fda8af12d71713a6 |
|
14-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Avoid creating MERGE_VALUES nodes for single values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
29e4bdbf27c5f03b12dd2bc41d9ccb0d5f3dfdf4 |
|
14-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Fix const-correctness issues with the SrcValue handling in the memory intrinsic expansion code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
707e0184233f27e0e9f9aee0309f2daab8cfe7f8 |
|
12-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal on any current target and aren't optimized in DAGCombiner. Instead of using intermediate nodes, expand the operations, choosing between simple loads/stores, target-specific code, and library calls, immediately. Previously, the code to emit optimized code for these operations was only used at initial SelectionDAG construction time; now it is used at all times. This fixes some cases where rep;movs was being used for small copies where simple loads/stores would be better. This also cleans up code that checks for alignments less than 4; let the targets make that decision instead of doing it in target-independent code. This allows x86 to use rep;movs in low-alignment cases. Also, this fixes a bug that resulted in the use of rep;stos for memsets of 0 with non-constant memory size when the alignment was at least 4. It's better to use the library in this case, which can be significantly faster when the size is large. This also preserves more SourceValue information when memory intrinsics are lowered into simple loads/stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
78256a199edba827b5356fcd041f60f92c9f205f |
|
11-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
detabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
36b5c1338a03453ba1c110b120269ca972fb65a3 |
|
07-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rename MemOperand to MachineMemOperand. This was suggested by review feedback from Chris quite a while ago. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dc1adac582fa120861f18ae7221bfe1421fea59f |
|
07-Apr-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Re-commit of the r48822, where the infinite looping problem discovered by Dan Gohman is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6397c64441ddce3822ab0e712f224a11bd75811c |
|
03-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Backing out 48222 temporarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e10efce22502d1a1855d25baf1458660f4ba6f33 |
|
28-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Rename getAnyLoad to getLoad is suggested by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
14ea39cf3c62fad781b8a00cda9e4a15e61520dc |
|
27-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Implement LegalizeTypes support for softfloat LOAD. In order to handle indexed nodes I had to introduce a new constructor, and since I was there I factorized the code in the various load constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e326332acd5fefb9854118603b4d07d4e44b64c5 |
|
26-Mar-2008 |
Roman Levenstein <romix.llvm@googlemail.com> |
Use a linked data structure for the uses lists of an SDNode, just like LLVM Value/Use does and MachineRegisterInfo/MachineOperand does. This allows constant time for all uses list maintenance operations. The idea was suggested by Chris. Reviewed by Evan and Dan. Patch is tested and approved by Dan. On normal use-cases compilation speed is not affected. On very big basic blocks there are compilation speedups in the range of 15-20% or even better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
26471c48b3d49bdbcfcc05cb9a575b5fa123fbbf |
|
25-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Handle a special case xor undef, undef -> 0. Technically this should be transformed to undef. But this is such a common idiom (misuse) we are going to handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4c931fc6e2a901f86ef20d5844bcad3cfd99c781 |
|
24-Mar-2008 |
Dan Gohman <gohman@apple.com> |
APIntify SelectionDAG's EXTRACT_ELEMENT code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c73ede0a9beaee2e11d004f816a8207d9bd79072 |
|
22-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Another comments fixing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
08b1173971a51eb89d7d6ee0992c39170c86994a |
|
22-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Teach DAG combiner to commute commutable binary nodes in order to achieve sdisel CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
276dcbdc8db6614cfd5004dc7dc35e437ddf9c58 |
|
21-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Introduce a new node for holding call argument flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
002e5d0a170dadd5c307e0b00d8c7970835837e6 |
|
13-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
25eb043759c23b61769108f78382eb9701c41db2 |
|
12-Mar-2008 |
Duncan Sands <baldrick@free.fr> |
Don't try to extract an i32 from an f64. This getCopyToParts problem was noticed by the new LegalizeTypes infrastructure. In order to avoid this kind of thing in the future I've added a check that EXTRACT_ELEMENT is only used with integers. Once LegalizeTypes is up and running most likely BUILD_PAIR and EXTRACT_ELEMENT can be removed, in favour of using apints instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4d86e2a6b8edc814165a3e63f55bfaea0b8f224d |
|
11-Mar-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Correctly propagate thread-local flag from aliasee to alias. This fixes PR2137 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5d03f21744f30988b962f023bd397bb5c6a20178 |
|
11-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
compile: double test() {} into: _test: fldz ret instead of: _test: subl $12, %esp #IMPLICIT_DEF %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f3ba434781daa1c2b16f77a91e5209c21ce12428 |
|
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Teach SD some vector identities, allowing us to compile vec_set-9 into: _test3: movd %rdi, %xmm1 #IMPLICIT_DEF %xmm0 punpcklqdq %xmm1, %xmm0 ret instead of: _test3: #IMPLICIT_DEF %rax movd %rax, %xmm0 movd %rdi, %xmm1 punpcklqdq %xmm1, %xmm0 ret This is still not ideal. There is no reason to two xmm regs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
27b7db549e4c5bff4579d209304de5628513edeb |
|
08-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Implement x86 support for @llvm.prefetch. It corresponds to prefetcht{0|1|2} and prefetchnta instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
eb49c4e008522df75f1b3f17ec0e2644eb4b1259 |
|
06-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
433f6f62ca858c20d5d3f561e63818c2fda06ebe |
|
06-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Constant fold SIGN_EXTEND_INREG with ashr not lshr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ec4a5672f86a42730d8fcf98243322520eaffb33 |
|
05-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Generalize FP constant shrinking optimization to apply to any vt except ppc long double. This allows us to shrink constant pool entries for x86 long double constants, which in turn allows us to use flds/fldl instead of fldt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
917be6814e0a4e529d290be5d806a054bbbc4a27 |
|
04-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isOperand() to isOperandOf() (and other similar methods). It always confuses me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bb271ff9fe1b92e8c0fdb54334f92803b344ee6a |
|
04-Mar-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6c231501f80e1ff05e3cada3d051b1c826d1f478 |
|
29-Feb-2008 |
Dan Gohman <gohman@apple.com> |
More APInt-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b3564aa8367fc38efdab0a812868f6f93b9d883e |
|
27-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert the last remaining users of the non-APInt form of ComputeMaskedBits to use the APInt form, and remove the non-APInt form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e6d088acc90e422451e098555d383d4d65b6ce6b |
|
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename PrintableName to Name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
74ab84c31ef64538a1b56e1f282e49303412ad17 |
|
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Change "Name" to "AsmName" in the target register info. Gee, a refactoring tool would have been a Godsend here! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d4cf992230a6cc4d76022c5d47dbd23115bdec44 |
|
26-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid aborting on invalid shift counts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2e68b6f52d0979575b2f02ed29717d907ba0684c |
|
25-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert MaskedValueIsZero and all its users to use APInt. Also add a SignBitIsZero function to simplify a common use case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c1c7bd610a1647d8e7eaeb4cc38ca1a85ae5e271 |
|
21-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Better names as per Evan's request git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ab0b949e0e9de452f3b052b11634ab761e008b23 |
|
21-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f83b1f63ddf27aaba791393940f37709ebbda33b |
|
20-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
LegalizeTypes support for scalarizing a vector store and splitting extract_subvector. This fixes nine "make check" testcases, for example 2008-02-04-ExtractSubvector.ll and (partially) CodeGen/Generic/vector.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ca93a43e8409c6dc5ccf2c9762fb513f9d318372 |
|
20-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Use APInt::intersects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4c71dfe356716e6bc1993ef5efdced08b68fe612 |
|
20-Feb-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Update gcc 4.3 warnings fix patch with recent head changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
19fc1d3742ccba2d8dde5d69c5593e1a0b83fefa |
|
20-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix an incredibly subtle bug exposed by Ted's change to APInt profiling. AddNodeIDNode does profiling for a ConstantSDNode, but so does SelectionDAG::getConstant. This profiling should be moved to a common static function in ConstantSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
efec751a1b786724862ceff52748df94873a807e |
|
19-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
- When DAG combiner is folding a bit convert into a BUILD_VECTOR, it should check if it's essentially a SCALAR_TO_VECTOR. Avoid turning (v8i16) <10, u, u, u> to <10, 0, u, u, u, u, u, u>. Instead, simply convert it to a SCALAR_TO_VECTOR of the proper type. - X86 now normalize SCALAR_TO_VECTOR to (BIT_CONVERT (v4i32 SCALAR_TO_VECTOR)). Get rid of X86ISD::S2VEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
22c5c1b2dfcb1da6a7ebfebea903401fc77d56e6 |
|
16-Feb-2008 |
Andrew Lenharth <andrewl@lenharth.org> |
llvm.memory.barrier, and impl for x86 and alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
423be627e6a108b72770426e16cb988b6167c3cb |
|
14-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompilation from Dan's recent apintification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d9fe41c0c8f6eab686c6064e2ce0c8e211b0c995 |
|
14-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Allow the APInt form of ComputeMaskedBits to operate on i128 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
72d2fd57b67b8afc6ddf6314c483a9d2ec71569a |
|
13-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid setting bits that aren't demanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
977a76fbb6ea1b87dfd7fbbe2ae2afb63e982ff3 |
|
13-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Simplify some logic in ComputeMaskedBits. And change ComputeMaskedBits to pass the mask APInt by value, not by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd29e0eb060ea8b4d490860329234d2ae5f5952e |
|
13-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t. Add an overload that supports the uint64_t interface for use by clients that haven't been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1f801fa5ada9cb40fb97ae755c282e91af54a1bc |
|
11-Feb-2008 |
Ted Kremenek <kremenek@apple.com> |
Added "Profile" method to APFloat for use with FoldingSet. Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary objects to a profile via dispatch to FoldingSetTrait<T>::Profile(). Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their functionality is now replaced using the above mentioned member template. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6f0d024a534af18d9e60b3ea757376cd8a3a980e |
|
10-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename MRegisterInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d885dbdf9eb7a51ebb9a15a85921f27d8219997c |
|
10-Feb-2008 |
Duncan Sands <baldrick@free.fr> |
Add truncate and AssertZext result expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6394b099e836f56a937cdcc7332c9487b504ca68 |
|
08-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Change ConstantSDNode to store an APInt instead of a uint64_t, and begin adding some methods to use it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
547ca537b638c8fd5c8f4729e4c74898f8371e4e |
|
08-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Avoid needlessly casting away const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3069b8743769527ce7af6cfb6591a2f0fc2faee4 |
|
07-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Follow Chris' suggestion; change the PseudoSourceValue accessors to return pointers instead of references, since this is always what is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
69de1932b350d7cdfc0ed1f4198d6f78c7822a02 |
|
06-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Re-apply the memory operand changes, with a fix for the static initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a58891ff1e6b5cc61cbb3cfe46be7f2eeddbfe98 |
|
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1975: dag isel emitter produces patterns that isel wrong flag result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fc718542a3e73558af9c0272b0eea67a189e5397 |
|
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f8dc0617baceeba8ccd67c8881eb88eb1be2902c |
|
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Change the 'global modification' APIs in SelectionDAG to take a new DAGUpdateListener object pointer instead of just returning a vector of deleted nodes. This makes the interfaces more efficient (no more allocating a vector [at least a malloc], filling it in, then walking it) and more clean. This also allows the client to be notified of nodes that are *changed* but not deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
11d049c87f49cf273863248d44cda005690515a6 |
|
03-Feb-2008 |
Chris Lattner <sabre@nondot.org> |
Generalize the SDOperand->SDOperand form of SelectionDAG::ReplaceAllUsesWith to handle replacement of an SDOperand with *any* sdoperand, not just one for a node with a single result. Note that this has a horrible FIXME'd hack in it to work around PR1975. This should be removed when PR1975 is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a844bdeab31ef04221e7ef59a8467893584cc14d |
|
02-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
334dc1f58d617dcff969a2e107febaae42bbc883 |
|
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bb81d97feb396a8bb21d074db1c57e9f66525f40 |
|
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1a0248690aaa9f7baaf1247e5f65a1c0c9e3783c |
|
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Rename ISD::FLT_ROUNDS to ISD::FLT_ROUNDS_ to avoid conflicting with the real FLT_ROUNDS (defined in <float.h>). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c6c391daddbafa722d9ca87d18f204e9a6e617a3 |
|
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Create a new class, MemOperand, for describing memory references in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b625f2f8960de32bc973092aaee8ac62863006fe |
|
30-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Factor the addressing mode and the load/store VT out of LoadSDNode and StoreSDNode into their common base class LSBaseSDNode. Member functions getLoadedVT and getStoredVT are replaced with the common getMemoryVT to simplify code that will handle both loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
303595942502f17c087fa28874c2b89117148c45 |
|
29-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Use empty() instead of comparing size() with zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9967c15183e023b7cf59b094d69530ffeca1aa0f |
|
26-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
don't bother making x&-1 only to simplify it in dag combine. This commonly occurs expanding i64 ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8e1f7ac87d75ffc02d2fd363a5a9c6d4c7089daf |
|
22-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Simplify SelectionDAG::getNode so that a big switch stmt is not #ifndef NDEBUG. This is in response to a really nasty bug I introduced that Dale tracked down, hopefully this won't happen in the future. Many thanks Dale. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
da9bb3578ed4f57b7e1f5393dfae85ccdf76b4af |
|
21-Jan-2008 |
Dale Johannesen <dalej@apple.com> |
Move DAG-changing code out of #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0bd4893a0726889b942405262e53d06cf3fe3be8 |
|
17-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
* Introduce a new SelectionDAG::getIntPtrConstant method and switch various codegen pieces and the X86 backend over to using it. * Add some comments to SelectionDAGNodes.h * Introduce a second argument to FP_ROUND, which indicates whether the FP_ROUND changes the value of its input. If not it is safe to xform things like fp_extend(fp_round(x)) -> x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7e2e033e232a3e414040d6b01c8c07a1095a0983 |
|
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Fix a ppc long double regression I introduced yesterday due to a simplification. This fixes automotive-basicmath on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
572dee71af1313e6742e1dfd5274fff326b9ef1c |
|
16-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Factor the ReachesChainWithoutSideEffects out of dag combiner into a public SDOperand::reachesChainWithoutSideEffects method. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
66fac79b899904ddd82e5ee354a6d370d80230f6 |
|
15-Jan-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
For PR1839: add initial support for __builtin_trap. llvm-gcc part is missed as well as PPC codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
349c4952009525b27383e2120a6b3c998f39bd09 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d268a497f916b65efaf9ae7392f81d12d4f95e00 |
|
22-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
improve support for fgetsign git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
636e5a216c8dab7567b5e5d8d1c7d982f507f7eb |
|
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / store node id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
81310138619ac46a4eb5ea9a28929c9f5ea8012c |
|
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Also print alignment and volatileness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
88ce93e0efc644e1a27a518d2c26f62a1d9ddb7a |
|
18-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
SelectionDAG::dump() should print SrcValue of LoadSDNode and StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
890813243f9b4f5aa9c6d5ab79ffe948458197ab |
|
12-Dec-2007 |
Dan Gohman <gohman@apple.com> |
Allow vector integer constants to be created with SelectionDAG::getConstant, in the same way as vector floating-point constants. This allows the legalize expansion code for @llvm.ctpop and friends to be usable with vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ce25443608063357247ca7943ff623af43debc77 |
|
11-Dec-2007 |
Evan Cheng <evan.cheng@apple.com> |
Pretty print shuffle mask operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
917c2a6ff2cfcd1263a5dd80c54336754c553ace |
|
16-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement necessary bits for flt_rounds gcc builtin. Codegen bits and llvm-gcc support will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ba3b1d10fd9bc3034a5947da7cc6e32a70ce23d4 |
|
30-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
If a call to getTruncStore is for a normal store, offload to getStore rather than trying to handle both cases at once (the assertions for example assume the store really is truncating). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5d868b1ffedfb4917abcb3b41afa6e21d9160ff7 |
|
19-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
If the value types are equal then this routine asserts in later checks rather than producing the ordinary load it is supposed to. Avoid all such hassles by directly returning an ordinary load in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c0d6ed325417baa5d119af9c2b6790231d8565f |
|
19-Oct-2007 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for byval function whose argument is not 32 bit aligned. To do this it is necessary to add a "always inline" argument to the memcpy node. For completeness I have also added this node to memmove and memset. I have also added getMem* functions, because the extra argument makes it cumbersome to use getNode and because I get confused by it :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f411b83c8c6853c2a922b692e782566353153f08 |
|
17-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Return Expand from getOperationAction for all extended types. This is needed for SIGN_EXTEND_INREG at least. It is not clear if this is correct for other operations. On the other hand, for the various load/store actions it seems to correct to return the type action, as is currently done. Also, it seems that SelectionDAG::getValueType can be called for extended value types; introduce a map for holding these, since we don't really want to extend the vector to be 2^32 pointers long! Generalize DAGTypeLegalizer::PromoteResult_TRUNCATE and DAGTypeLegalizer::PromoteResult_INT_EXTEND to handle the various funky possibilities that apints introduce, for example that you can promote to a type that needs to be expanded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
db44bf85d832b26c398cda9acfd3473832f6e585 |
|
17-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Disable attempts to constant fold PPC f128. Remove the assumption that this will happen from various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
af47b11b959713d70c45bee1922e468adfaeaff0 |
|
16-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Initial infrastructure for arbitrary precision integer codegen support. This should have no effect on codegen for other types. Debatable bits: (1) the use (abuse?) of a set in SDNode::getValueTypeList; (2) the length of getTypeToTransformTo, which maybe should be refactored with a non-inline part for extended value types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
37ce9df0da6cddc3b8bfef9b63d33d058a0f2f15 |
|
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
add a new CreateStackTemporary helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
01d029b82cb08367d81aa10cdc94d05360466649 |
|
15-Oct-2007 |
Chris Lattner <sabre@nondot.org> |
One mundane change: Change ReplaceAllUsesOfValueWith to *optionally* take a deleted nodes vector, instead of requiring it. One more significant change: Implement the start of a legalizer that just works on types. This legalizer is designed to run before the operation legalizer and ensure just that the input dag is transformed into an output dag whose operand and result types are all legal, even if the operations on those types are not. This design/impl has the following advantages: 1. When finished, this will *significantly* reduce the amount of code in LegalizeDAG.cpp. It will remove all the code related to promotion and expansion as well as splitting and scalarizing vectors. 2. The new code is very simple, idiomatic, and modular: unlike LegalizeDAG.cpp, it has no 3000 line long functions. :) 3. The implementation is completely iterative instead of recursive, good for hacking on large dags without blowing out your stack. 4. The implementation updates nodes in place when possible instead of deallocating and reallocating the entire graph that points to some mutated node. 5. The code nicely separates out handling of operations with invalid results from operations with invalid operands, making some cases simpler and easier to understand. 6. The new -debug-only=legalize-types option is very very handy :), allowing you to easily understand what legalize types is doing. This is not yet done. Until the ifdef added to SelectionDAGISel.cpp is enabled, this does nothing. However, this code is sufficient to legalize all of the code in 186.crafty, olden and freebench on an x86 machine. The biggest issues are: 1. Vectors aren't implemented at all yet 2. SoftFP is a mess, I need to talk to Evan about it. 3. No lowering to libcalls is implemented yet. 4. Various operations are missing etc. 5. There are FIXME's for stuff I hax0r'd out, like softfp. Hey, at least it is a step in the right direction :). If you'd like to help, just enable the #ifdef in SelectionDAGISel.cpp and compile code with it. If this explodes it will tell you what needs to be implemented. Help is certainly appreciated. Once this goes in, we can do three things: 1. Add a new pass of dag combine between the "type legalizer" and "operation legalizer" passes. This will let us catch some long-standing isel issues that we miss because operation legalization often obfuscates the dag with target-specific nodes. 2. We can rip out all of the type legalization code from LegalizeDAG.cpp, making it much smaller and simpler. When that happens we can then reimplement the core functionality left in it in a much more efficient and non-recursive way. 3. Once the whole legalizer is non-recursive, we can implement whole-function selectiondags maybe... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5927d8e94d0b50296c2af4acdfe4d799e369fc08 |
|
14-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Disable some compile-time optimizations on PPC long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
07f04fd574a59c690f297fd10c2e0dd14093675e |
|
12-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add an ISD::FPOW node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6eaeff29b8a6990107735f7e5f5e49da38f56223 |
|
10-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Next PPC long double bits: ppcf128->i32 conversion. Surprisingly complicated. Adds getTargetNode for 2 outputs, no inputs (missing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
08ce9769718354e6767d3815e4c255e7c9fc0a46 |
|
08-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Add convenience overloads of SelectionDAG::getNode that take a SDVTList and individual SDOperand operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ccf596a53e16ea221a9bf8b3874a7d6afa71f1f4 |
|
07-Oct-2007 |
Neil Booth <neil@daikokuya.co.uk> |
convertFromInteger, as originally written, expected sign-extended input. APInt unfortunately zero-extends signed integers, so Dale modified the function to expect zero-extended input. Make this assumption explicit in the function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ccd60799cdc9b75ddc971c02f0a1bf3bd7f48aba |
|
05-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Provide names for MUL_LOHI and DIVREM operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
39305cf55363046162c5a992f96f26d607a204e5 |
|
05-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add a variant of getTargetNode() that takes a vector of MVT::ValueType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d89b117850d1ebcc1390f23891b6ac0b64c99045 |
|
30-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
remove dup comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
88216af3ea4bb1c68a8793ed1d3b30308b64ab0e |
|
30-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Constant fold int-to-long-double conversions; use APFloat for int-to-float/double; use round-to-nearest for these (implementation-defined, seems to match gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
910993e8dc49a25d9da3b53de4a82568c14e91cc |
|
22-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Change APFloat::convertFromInteger to take the incoming bit width instead of number of words allocated, which makes it actually work for int->APF conversions. Adjust callers. Add const to one of the APInt constructors to prevent surprising match when called with const argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
73328d14acba0144f121b557ce0e1539c6a21a18 |
|
20-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
More long double fixes. x86_64 should build now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8feb1f4467425d23ed74cce61e49f18a51a63421 |
|
18-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Do not hide APInt::dump() inside #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ffe3612af4ba03269f9affd3d2552bdb78ed6824 |
|
17-Sep-2007 |
Devang Patel <dpatel@apple.com> |
This is not ideal but unbreaks build failure. APInt::dump() is inside #ifndef NDEBUG, however SelectionDAG dump() routines are not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9e3d3abd937c9bb79d56d25ec0e0724c7cbba67c |
|
15-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Remove the assumption that FP's are either float or double from some of the many places in the optimizers it appears, and do something reasonable with x86 long double. Make APInt::dump() public, remove newline, use it to dump ConstantSDNode's. Allow APFloats in FoldingSet. Expand X86 backend handling of long doubles (conversions to/from int, mostly). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3d6992fc7bfbd77e912044e7f15e324329d9b4eb |
|
13-Sep-2007 |
Chris Lattner <sabre@nondot.org> |
Fix build problems on Cygwin (PR1652), patch by Patrick Walton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
05e69c1f23f1097530fcbc7be97f99d696c019a2 |
|
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Yet another getTargetNode variant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9d5f45607793052bf5b4436d1b43013fab9999ac |
|
12-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Revise previous patch per review comments. Next round of x87 long double stuff. Getting close now, basically works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3f6eb7419de437436265831fce92f62498556e08 |
|
11-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add APInt interfaces to APFloat (allows directly access to bits). Use them in place of float and double interfaces where appropriate. First bits of x86 long double constants handling (untested, probably does not work). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f7331b3dd72409e644833ecaf62a0f6db03c97ee |
|
11-Sep-2007 |
Duncan Sands <baldrick@free.fr> |
Fold the adjust_trampoline intrinsic into init_trampoline. There is now only one trampoline intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c4dd3c3b519aa2c2ed26ce03a4b1fbb992efeaca |
|
01-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add mod, copysign, abs operations to APFloat. Implement some constant folding in SelectionDAG and DAGCombiner using APFloat. Remove double versions of constructor and getValue from ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ee8476847da85e1ac44744f7f64de0675b89dc15 |
|
31-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Revise per review of previous patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
eaf089430e7681fcddc3465c3b33b9645273ab02 |
|
31-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Enhance APFloat to retain bits of NaNs (fixes oggenc). Use APFloat interfaces for more references, mostly of ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f04afdbb48568ef09f11fd10ac03426101f2dbf8 |
|
30-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Change LegalFPImmediates to use APFloat. Add APFloat interfaces to ConstantFP, SelectionDAG. Fix integer bit in double->APFloat conversion. Convert LegalizeDAG to use APFloat interface in ConstantFPSDNode uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e6c1742914149d44360fbf05a653041a672282af |
|
26-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Revise per review comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
87503a63d5756f1836f66f4c9723ec0ea30ec3ca |
|
26-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Add APFloat interface to ConstantFPSDNode. Change over uses in DAGCombiner. Fix interfaces to work with APFloats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
12595d7b165bf460b18f4ddd395dd29e6e6e68bc |
|
25-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual. This means backing out the preceding change to Constants.cpp, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8bb369b8072c919ef5802f639a52b17620201190 |
|
24-Aug-2007 |
Dale Johannesen <dalej@apple.com> |
Use APFloat internally for ConstantFPSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
33d5595d667ba4a880bd7fe785724e8197bef70c |
|
02-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Do not emit copies for physical register output if it's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
36397f50343639ce9a25996f2d790c656791ab92 |
|
27-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
Support for trampolines, except for X86 codegen which is still under discussion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
557c3631d320c5731e55b6f818a1c7b2d4d97176 |
|
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Add selection DAG nodes for subreg insert/extract. PR1350 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
275769a77acd8f0dadbf9ca03384b31c9f1c3e01 |
|
23-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Fix some uses of dyn_cast to be uses of cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
70d0bd16243e1e8b59e2689760cb2e5c1e521290 |
|
19-Jul-2007 |
Duncan Sands <baldrick@free.fr> |
As pointed out by g++-4.2, the original code didn't do what it thought it was doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2365f51ed03afe6993bae962fdc2e5a956a64cd5 |
|
14-Jul-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Long live the exception handling! This patch fills the last necessary bits to enable exceptions handling in LLVM. Currently only on x86-32/linux. In fact, this patch adds necessary intrinsics (and their lowering) which represent really weird target-specific gcc builtins used inside unwinder. After corresponding llvm-gcc patch will land (easy) exceptions should be more or less workable. However, exceptions handling support should not be thought as 'finished': I expect many small and not so small glitches everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
743d3a754820e64eb779335a2cb2688fd0dd58d5 |
|
10-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Change the peep for EXTRACT_VECTOR_ELT of BUILD_PAIR to look for the new CONCAT_VECTORS node type instead, as that's what legalize uses now. And add a peep for EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
50b153335d2943a95acf37d7ee84095f8e8af53c |
|
05-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Make the debug string for ISD::MERGE_VALUES consistent with the others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c908dcde45c6d7ddff0443cbc174a7cbfec21d1b |
|
29-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix a vector FP constant CSE bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6595cb3000d7f5f8e9a76d556aa8609db91b7887 |
|
27-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename ("shrinkify") MVT::isExtendedValueType to MVT::isExtendedVT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7f32156bb9c017b71971c52fac892fa7b9b06dd2 |
|
25-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Generalize MVT::ValueType and associated functions to be able to represent extended vector types. Remove the special SDNode opcodes used for pre-legalize vector operations, and the special MVT::Vector type used with them. Adjust lowering and legalize to work with the normal SDNode kinds instead, and to use the normal MVT functions to work with vector types instead of using the two special operands that the pre-legalize nodes held. This allows pre-legalize and post-legalize DAGs, and the code that operates on them, to be more consistent. Pre-legalize vector operators can be handled more consistently with scalar operators. And, -view-dag-combine1-dags and -view-legalize-dags now look prettier for vector code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ea859be53ca13a1547c4675549946b74dc3c6f41 |
|
22-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b5bec2b6f6f4a4da96170d1c258ad424112ad2c5 |
|
19-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Pass a SelectionDAG into SDNode::dump everywhere it's used, in prepration for needing the DAG node to print pre-legalize extended value types, and to get better debug messages with target-specific nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
51eaa86758338d5935c0eff0469c418b1256aba7 |
|
15-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Rename MVT::getVectorBaseType to MVT::getVectorElementType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6595635175764f402e7a5e53216c8d46bdce8c28 |
|
13-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Introduce new SelectionDAG node opcodes VEXTRACT_SUBVECTOR and VCONCAT_VECTORS. Use these for CopyToReg and CopyFromReg legalizing in the case that the full register is to be split into subvectors instead of scalars. This replaces uses of VBIT_CONVERT to present values as vector-of-vector types in order to make whole subvectors accessible via BUILD_VECTOR and EXTRACT_VECTOR_ELT. This is in preparation for adding extended ValueType values, where having vector-of-vector types is undesirable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
575e2f4ea874deae3af8a940f30df5348d272190 |
|
04-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Resolve implicit alignment before computing the FoldingSet information so that the CSE map always contains explicit alignment information. This allows more loads to be CSE'd when there is a mix of explicit-alignment loads and implicit-alignment loads. Also, in SelectionDAG::FindModifiedNodeSlot, add the operands to the FoldingSetNodeID before the load/store information instead of after, so that it matches what is done elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
237898ac1f6f6d1915282cc3afaa3c36435e76c0 |
|
24-May-2007 |
Dan Gohman <gohman@apple.com> |
Add explicit qualification for namespace MVT members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
964dd860542aa12bea93474dc159b4a7e3a6a9c1 |
|
25-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
Be more careful about folding op(x, undef) when we have vector operands. This fixes CodeGen/X86/2007-04-24-VectorCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
95c218a83ecf77590b9dc40c636720772d2b5cd7 |
|
23-Apr-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
PR400 phase 2. Propagate attributed load/store information through DAGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2c5c111b6c144b05718404c85b9dfcc76b1619e7 |
|
21-Apr-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
X86 TLS: Implement review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c67bdc288aac130d88630f7fa95ceca6bcf95077 |
|
21-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Revert Christopher Lamb's load/store alignment changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2330e4d4c4f8008d17f5a38ac0d7b04e139d4131 |
|
21-Apr-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
add support for alignment attributes on load/store instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b3a0417cad8b625acc3033bd5e24afb9ffd0b084 |
|
20-Apr-2007 |
Lauro Ramos Venancio <lauro.venancio@gmail.com> |
Implement "general dynamic", "initial exec" and "local exec" TLS models for X86 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4829b1c6ab810ee274a104985915988b4f92aa7a |
|
12-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
fold noop vbitconvert instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff33cc4d08a115e40b8ad0caabfe971cd9a8351a |
|
09-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
add some assertions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
577cc32d9a1af6ad3f6adf8b6de072b9ee1c9a8b |
|
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Change getOperationName to return std::string instead of const char* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2041a0ef7544ec5ceece9cabd3963cc887861c1d |
|
30-Mar-2007 |
Dale Johannesen <dalej@apple.com> |
Fix incorrect combination of different loads. Reenable zext-over-truncate combination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b654176cb4d58c8784043fbedd4584f3f0eedc07 |
|
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
fold away addc nodes when we know there cannot be a carry-out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
175415e116feef0def0f7c084cca3646a403412b |
|
04-Mar-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate some ops if they have an undef RHS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
753d9cb50e1d2e78b9a82185dc64f0e672560775 |
|
25-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
fold trivial token factor nodes. This allows us to compile test/CodeGen/X86/fp-stack-ret.ll into: movl 4(%esp), %eax fldl (%eax) ret instead of: subl $12, %esp movl 16(%esp), %eax movsd (%eax), %xmm0 movsd %xmm0, (%esp) fldl (%esp) addl $12, %esp ret by eliminating a token factor that blocked a check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b180aa17539e14a5430d020bbc7de83c79b7fc4b |
|
21-Feb-2007 |
Jim Laskey <jlaskey@mac.com> |
Selection and lowering for exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3f97eb449b08069e3370d4ba7566c60bdbf0babd |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate their operands with the node itself. This reduces malloc traffic for operand lists. This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ab4ed595385d0b9421c0d45c809ec6324cf11f11 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate the SDNode::setValueTypes method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
63e3f14df6cf76f1a12de1153e1114f4b20b15a9 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate a bunch of duplicate ctors and helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d429bcd4ac734540ebbc15a0ee37d154ae1daf73 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
move MorphNode to out of line and merge setNodeOperands into it. There is no behavior or performance change here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
48b85926524f9d29ae600123c90194cd73fd629e |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
simplify MorphNodeTo to take a VTList operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
67612a1188980d92a4bdd84c34a5aa89a4b9d929 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate some extraneous methods in SDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c76e3c86026b9fa44bfbb0888881b52955078011 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Give each selectiondag node class a home for it's vtable and rtti info git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d48c5e871a0f3386e536e0987ca06dbc4e274acf |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Eliminate some std::sets. This speeds up isel of kimwitu by about 0.9% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cf5640bd52e919b6fbb06f231122e718f48dbb12 |
|
04-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Switch SelectionDAG::ReplaceAllUsesOfValueWith to use a SmallSetVector for the users set (most nodes have 1 or 2 users). This speeds up the isel pass 3.2% on kimwitu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fea997aac5773e936754de5436029c2a4fa1e930 |
|
01-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fit in 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bcc5f36765e8111c13873a0c0dc874c92385d808 |
|
29-Jan-2007 |
Nate Begeman <natebegeman@mac.com> |
Finish off bug 680, allowing targets to custom lower frame and return address nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1ee29257428960fede862fcfdbe80d5d007927e9 |
|
26-Jan-2007 |
Jim Laskey <jlaskey@mac.com> |
Make LABEL a builtin opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bcd2498f4f1682dbdc41452add5b9bc72cbd6b3f |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removed more <iostream> includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
832171cb9724d2d31c8dfb73172e2be8f6dd13ee |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removing even more <iostream> includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
97af751deb9b26fd42fbcee082da9ccc4ded5b45 |
|
02-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cc47021f49851a1b5344b7a0530f7ac50a395216 |
|
16-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix an incorrectly inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a07d5b91644eedadf768f91d3959224357fafbc9 |
|
11-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
Make an assert comment match the tested assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
144d8f09e139f691cafadbc17873943ba4c465f3 |
|
09-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d6c3422e3126927840683574a658a0deada903f0 |
|
08-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Remove redundant <cmath>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d41b30def3181bce4bf87e8bde664d15663165d0 |
|
05-Nov-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9109fb1eb7d3341727353777c2a4282aa1a0c39a |
|
05-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added getIndexedStore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e6e97e66a366cc7d2d103ac58db56e4bfd700b10 |
|
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c5fc57dcaeac6b479fb15b9e1f4aca0845141006 |
|
03-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added isPredecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
02cb49ee679f60662220fca4e26df4f9f16db5e0 |
|
03-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ed469ccd7b028a030b550d84b7336d146f5d8fa |
|
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6cc31ae4da958abc85309f2160e64d6effaa2d3c |
|
01-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Print jumptable index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c41cd9c391f1f69adf416145a5a1308d7ce342fc |
|
30-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added a new SDNode type: BR_JT for jumptable branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ba726ab3ec88b3b149b4caa34dec5ade5a3a7f89 |
|
29-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
VLOAD is not the LoadSDNode opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f6aaaaa39ef0901623965b9e8306c36a6d3bb89e |
|
29-Oct-2006 |
Nick Lewycky <nicholas@mxc.ca> |
Remove spurious case. EXTLOAD is not one of the node opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1c6f01aaa58c1f8666c30465b73b702524fa9553 |
|
28-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Load and stores have not been uniqued properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6fb6ef4d65abcbbb0b0d81e1b51d99949664ac86 |
|
28-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a serious bug that caused any x86 vector stuff to infinite loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
def69b92e70d156ed6f8c7af33c9a87d3f475e09 |
|
28-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
583bd47f777fe3eb8305872fa0eadab31e833dff |
|
28-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Switch over from SelectionNodeCSEMap to FoldingSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5270cf1b77e68b19e2c689e87700029821c70aa2 |
|
26-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
getPreIndexedLoad -> getIndexedLoad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b360729873eb142ae2327cd399880e4ef55bea2a |
|
17-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Trivial patch to speed up legalizing common i64 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2cacccae194b5ed648c004f6c06fce5565331ee9 |
|
17-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reflect MemOpAddrMode change; added a helper to create pre-indexed load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
26f7fa7bba94eb18bf0e43586dd2b596cb58ca80 |
|
17-Oct-2006 |
Jim Laskey <jlaskey@mac.com> |
Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
51dabfb28375be7bc5848806ae31cd068b6133f8 |
|
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
When SimplifySetCC was moved to the DAGCombiner, it was never removed from SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG. Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into a new FoldSetCC method which can be used by getNode() and SimplifySetCC. This fixes obscure bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dc78cbf45794739ee0fbc8e0c0597f97b5e94df6 |
|
14-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1', which is undefined. "0" isn't a power of 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8b2794aeff151be8cdbd44786c1d0f94f8f2e427 |
|
13-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
130a6471b90f66e99b1f9f42877fdf611c330ac6 |
|
12-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add RemoveDeadNode to remove a dead node and its (potentially) dead operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2e49f090f9656af7d5ed4d5c4e9fa26af59c7233 |
|
11-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Naming consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
82c3d8f81ab20dc7571f29ffc46a5bb1b7ed8323 |
|
11-Oct-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Jimptables working again on alpha. As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9629abac79fe4efdd000ca1996b2cabd1609190c |
|
11-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper SelectionDAGCSEMap ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0ac1c6ad9af78654188ca5164c1d0839e834444e |
|
10-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
SDNode::dump should also print out extension type and VT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
466685d41a9ea4905b9486fea38e83802e46f196 |
|
09-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ad071e1cd1a4b880019f1b2e827ee81867815f82 |
|
06-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add getStore() helper function to create ISD::STORE nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c548428c5d7328592f4db6f6cd815af18b3152a3 |
|
04-Oct-2006 |
Evan Cheng <evan.cheng@apple.com> |
Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an extra operand to LOADX to specify the exact value extension type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
16113431e84bb8adba21fc73bb5715a1297000ae |
|
26-Sep-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
Comments on JumpTableness git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
863ac769b850d75a390bfdc20b62d7d120fb69a9 |
|
19-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fold extract_element(cst) to cst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c6621c3bc7e53e0754cb74062d27a6e8b7275e8 |
|
19-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Minor speedup for legalize by avoiding some malloc traffic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d6594ae54cfde4db4d30272192645c0a45fb9902 |
|
12-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added support for machine specific constantpool values. These are useful for representing expressions that can only be resolved at link time, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6ddf8ed6fe2d0aa5e15f7b9ad7e5049e2223bbd1 |
|
09-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the fpowi now by lowering to a libcall git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1efba0ecb4d0b3807c48e6e0f74e3ce5c9fad809 |
|
29-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
694481ee01bfe507c6e37de0dc1c64cff455eefd |
|
27-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate SelectNodeTo() and getTargetNode() variants which take more than 3 SDOperand operands. They are replaced by versions which take an array of SDOperand and the number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
95514bae7309ffacfc0a79b267159dcfde2b7720 |
|
26-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
SelectNodeTo now returns a SDNode*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
be384162c68641233deba8702666af51bdfd4b83 |
|
17-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f83482dcad35ac4fcb0d387d8f84794cda70f857 |
|
16-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Use the appropriate typedef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0b3e525a3a6b55b66dc5676675712b26e4c1ed9f |
|
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Start using SDVTList more consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
70046e920fa37989a041af663ada2b2b646e258f |
|
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
add a new SDVTList type and new SelectionDAG::getVTList methods to streamline the creation of canonical VTLists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2fa6d3b1fcadbde90eaee0e8e89aebd81630b662 |
|
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new getNode() method that takes a pointer to an already-intern'd list of value-type nodes. This avoids having to do mallocs for std::vectors of valuetypes when a node returns more than one type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e51ee04c3d682b4701e4ba03233a37645206cf20 |
|
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
remove SelectionDAG::InsertISelMapEntry, it is dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
213a16c637926bfc38ba373d3aba6778e181e3ec |
|
15-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add code to resize the CSEMap hash table. This doesn't speedup codegen of kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
130fc13506b4da64981632c83734721a8b5b2d2d |
|
14-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Add the actual constant to the hash for ConstantPool nodes. Thanks to Rafael Espindola for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c9f8f416800784ca6453222b307bc44ad24739b0 |
|
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Remove 8 more std::map's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
61b09412fe2c98367730c7064d56eff537b03434 |
|
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants, RegNodes, and ValueNodes maps into the CSEMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4a283e90af7984762eb3e984cee747d32c82e3db |
|
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate the NullaryOps map, use CSEMap instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b9ea4a39b8192bd13d69d5e15d1e6a2290d24e80 |
|
11-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Change one ReplaceAllUsesWith method to take an array of operands to replace instead of a vector of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bd564bfc63163e31f320c3da9749db70992dc35e |
|
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Start eliminating temporary vectors used to create DAG nodes. Instead, pass in the start of an array and a count of operands where applicable. In many cases, the number of operands is known, so this static array can be allocated on the stack, avoiding the heap. In many other cases, a SmallVector can be used, which has the same benefit in the common cases. I updated a lot of code calling getNode that takes a vector, but ran out of time. The rest of the code should be updated, and these methods should be removed. We should also do the same thing to eliminate the methods that take a vector of MVT::ValueTypes. It would be extra nice to convert the dagiselemitter to avoid creating vectors for operands when calling getTargetNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f06f35e30b4c4d7db304f717a3d4dc6595fbd078 |
|
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate some malloc traffic by allocating vectors on the stack. Change some method that took std::vector<SDOperand> to take a pointer to a first operand and #operands. This speeds up isel on kc++ by about 3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a5682853b9921bbb0dd2ee175c9bd44142d4819e |
|
08-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Revamp the "CSEMap" datastructure used in the SelectionDAG class. This eliminates a bunch of std::map's in the SelectionDAG, replacing them with a home-grown hashtable. This is still a work in progress: not all the maps have been moved over and the hashtable never resizes. That said, this still speeds up llc 20% on kimwitu++ with -fast -regalloc=local using a release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
99157a00a6cadfd733cf02b947e2b7c7ed27246b |
|
08-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clear TopOrder before assigning topological order. Some clean ups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
190a418bf6b49a4ef1c1980229a2f0d516e8a2cd |
|
04-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, which also make it simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c384d6c3989cf2055b577754fc61a4673af30618 |
|
03-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Change AssignTopologicalOrder to return vector of SDNode* by reference. - Tweak implementation to avoid using std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e6f35d8a5cc92d776cf460200e2b815e8c301b14 |
|
01-Aug-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added AssignTopologicalOrder() to assign each node an unique id based on their topological order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2641cad180e94c0d26630d4ed455352f19be3d3e |
|
28-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove InFlightSet hack. No longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7c16d776cb827922dd0f8f0a88c5b65a90810c0b |
|
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
AssignNodeIds should return unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
091cba1b9132759cc4ef0e9e528f244c2024c445 |
|
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
AssignNodeIds assign each node in the DAG an unique id. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29337 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
917d2c9dc2cc8879ed97533e7f75f3f92fa26b61 |
|
19-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Add an out-of-line virtual method for the sdnode class to give it a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
322812e603705e1c2037313633e72f689524b163 |
|
30-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Ugly hack! Add helper functions InsertInFlightSetEntry and RemoveInFlightSetEntry. They are used in place of direct set operators to reduce instruction selection function stack size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
883a52de66da854de158b602952d8242acddcb48 |
|
28-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f4ec817299a4187044a6162c2f520772b3ad69a0 |
|
17-May-2006 |
Chris Lattner <sabre@nondot.org> |
Add a new ISD::CALL node, make the default impl of TargetLowering::LowerCallTo produce it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f1343c1b7929930c276939ac571cfbfadc283c4e |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
remove dead vars git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e41102bb610aeebe73eeec6a4afe62301de10042 |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Compile: %tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1] %tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1] %bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1] To setne, not setune, which causes an assertion fault. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2cfd6746ae4ab9dbfc25b025bc3e8bccddc47475 |
|
08-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fold shifts with undef operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b9ebacdb4dccd0048b7fc8bcd2559d17e5293d38 |
|
07-May-2006 |
Chris Lattner <sabre@nondot.org> |
constant fold sign_extend_inreg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a83385fb7bdb325921d091729d95e2e1f4d49cc1 |
|
27-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Fix Regression/CodeGen/Generic/2006-04-26-SetCCAnd.ll and PR748. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
37efe6764568a3829fee26aba532283131d1a104 |
|
22-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
62b5772959741f1f1368e9a603d171caac1083f5 |
|
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement folding of a bunch of binops with undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
547a16f27315a08527c41dc521c7cdf6ad9a0b6c |
|
16-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Make these predicates return true for bit_convert(buildvector)'s as well as buildvectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fdfded55888e35b76bb70231a5bb2f60877c2f6a |
|
12-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9d956250f547eb50c453edcb83b9d1783ee1558c |
|
12-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Don't memoize vloads in the load map! Don't memoize them anywhere here, let getNode do it. This fixes CodeGen/Generic/2006-04-11-vecload.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b22e35a3c3bec07f5559c1476b3143e0d6d64269 |
|
09-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add code generator support for VSELECT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
08da55eeff8fdacd232e69c76bc5142eb4b1474e |
|
04-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Constant fold bitconvert(undef) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5e08a1103950722c1faa999aabb04048342392b7 |
|
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
These entries already exist git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
97d23335ad9a3a1e5b78b9feea49c57252ab53e9 |
|
02-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add some missing node names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
70c2a61e0a0fb0a7e8b9bddd26bdcc92762772f0 |
|
31-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Significantly improve handling of vectors that are live across basic blocks, handling cases where the vector elements need promotion, expansion, and when the vector type itself needs to be decimated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
354cde9a7e7038ec0cb61a76f22baae289131ade |
|
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
new node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f35b29765b2c1393aa479cd2d9c82d99c18d7430 |
|
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add an assertion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
48b61a729df6576c8833a83893d4086bddff69a5 |
|
28-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Tblgen doesn't like multiple SDNode<> definitions that map to the sameenum value. Split them into separate enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
401ec7f6a9fb339f752ec424efe13431a556cc6d |
|
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Unbreak the build on non-apple compilers :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
23cc8708c316128088674675707e140658043f85 |
|
27-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Try again git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f48b50a7ef18044c8f05075e6432d072db069f5d |
|
27-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Incorrect check for FP all one's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a8df166fbef047c90adba3c673162a1b1f6681c4 |
|
27-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change isBuildVectorAllOnesInteger to isBuildVectorAllOnes. Also check for floating point cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
70a248d284af550ae46c8dfc18ea2bbc15d31eb0 |
|
27-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Instead of printing "INTRINSIC" on intrinsic node, print the intrinsic name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4a147842eb24a7611fcd7bfb37c55185b4664927 |
|
26-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add ISD::isBuildVectorAllZeros predicate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
452e8354d58960289aae610fa265ee69431b6b83 |
|
25-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in ISD::isBuildVectorAllOnesInteger that caused it to always return false git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
61d4399dfc7046595e30ad34a28c72a885cb8100 |
|
25-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement the ISD::isBuildVectorAllOnesInteger predicate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e8a30fdf519a7db1c5e157aa29d72839cfc16174 |
|
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
fix some bogus assertions: noop bitconverts are legal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3e8f3ce8f6d7fb7bee4cf7ac27bea2e90f83b25d |
|
24-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Identify the INTRINSIC node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e25ca692c0478af5e15170fce23cea2a5b5fd0b9 |
|
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Implement simple support for vector casting. This can currently only handle casts between legal vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
384504cea6c392125a2318d8bbb7f25aa0bbff7e |
|
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add some trivial support for extractelement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1c6191ffe764f3294cc2dda2bb3703403a416414 |
|
21-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add a hacky workaround for crashes due to vectors live across blocks. Note that this code won't work for vectors that aren't legal on the target. Improvements coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fb194b9e738ab2730ea0a3189f091737aba31c5b |
|
20-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add very basic support for VECTOR_SHUFFLE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ce87215131efcc68dcf7fca61055ad783a7aeb0e |
|
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add SCALAR_TO_VECTOR support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b2827b0901162169bb2692b77a839c9767849134 |
|
19-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. Allow*BUILD_VECTOR to take variable inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c7029805ef35ce9805931067b841e6af11db382e |
|
18-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Change the structure of lowering vector stuff. Note: This breaks some things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0c486bdc221768f229e97ad15f5d160288817e96 |
|
17-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add a couple enum values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
81e8097377529dc3b666f33bb525c49cfbac3f51 |
|
17-Mar-2006 |
Nate Begeman <natebegeman@mac.com> |
Remove BRTWOWAY* Make the PPC backend not dependent on BRTWOWAY_CC and make the branch selector smarter about the code it generates, fixing a case in the readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
28b5b1c7b54c2065882b98af2406c38a3bcee802 |
|
15-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
add support for vector->vector casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3c232c83be461b741c40fb25b932a1f60256a462 |
|
06-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Don't depend on the C99 copysign function, implement it ourselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3d68e15c20fd91183e352b906395fbc98c27d7af |
|
05-Mar-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
12d830346b78b8e92dc0346e710f261cc680480f |
|
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Add some simple copysign folds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a09f848c11c9db3c2614e0275a3256310ac26653 |
|
05-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Codegen copysign[f] into a FCOPYSIGN node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bfa284f69752c54f81bffc2b0d15d5c1e618a659 |
|
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
SDOperand::isOperand should not be a forwarding. It must check *this against N's operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
80d8eaae05d9bcb25abf6c6f0385ec2554355f26 |
|
03-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added isOperand(N): true if this is an operand of N git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
41edaa0529997e41a2bd64efd5f3e8027c67d99f |
|
03-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove the read/write port/io intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1ab7d859cf5c490612799d7e132c0b1c39f8f497 |
|
01-Mar-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Added VConstant as an abstract version of ConstantVec. - All abstrct vector nodes must have # of elements and element type as their first two operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
38b7327ec02fbc6f163905ac85ea55d357dece51 |
|
26-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Print ConstantPoolSDNode offset field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
404cb4f9fa2df50eac4d84b8a77c84a92188c6d5 |
|
25-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added an offset field to ConstantPoolSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b0d04a7deaf1ffc78f2eb85295af987a54223c00 |
|
18-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
Add checks to make sure we don't create bogus extend nodes, and fix a bug where we were doing exactly that which was causing failures on x86 and alpha. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
012f241987a017ea74d34d4c126997f84902ef61 |
|
17-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a tricky issue in the SimplifyDemandedBits code where CombineTo wasn't exactly the API we wanted to call into. This fixes the crash on crafty last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
551bf3f80058a026b6a128dffd5530019e1df1b9 |
|
17-Feb-2006 |
Nate Begeman <natebegeman@mac.com> |
kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fae9f1cb34d6d2c4dbd007f2d748a70b67776a82 |
|
09-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added SelectionDAG::InsertISelMapEntry(). This is used to workaround the gcc problem where it inline the map insertion call too aggressively. Before this change it was producing a frame size of 24k for Select_store(), now it's down to 10k (by calling this method rather than calling the map insertion operator). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6ae46c4c8757237bca2b78b589c96c37015bc356 |
|
09-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
More changes to reduce frame size. Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This prevents them from being inlined. Change getTargetNode() so they return SDNode * instead of SDOperand to prevent copying. It should also help compilation speed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4ee621125876cc954cba5280dd9395552755a871 |
|
05-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
* Added SDNode::isOnlyUse(). * Fix hasNUsesOfValue(), it should be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
eefae25034a116d8cd1639f61e2920e913f2259f |
|
03-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
remove dead fn git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9fda2f9106112a522aecf080c016ea5317f52b21 |
|
03-Feb-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added case HANDLENODE to getOperationName(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b8973bd8f50d7321635e1e07b81a880a0828d185 |
|
31-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow the specification of explicit alignments for constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
70814bc38435d61a8c7cc32f2375c09e21f12a8a |
|
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperands instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3181a771ff5b2090b7ed55f9b18a684ea8fe625a |
|
29-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Legalize ConstantFP into TargetConstantFP when the target allows. Implement custom expansion of ConstantFP nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25772 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
809ec110885ad7cc820889d789b06aaa3ea7358f |
|
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add another method variant git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
df6eb30fa9bc8600862cae18fce66da466188323 |
|
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add some methods for updating nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0ff5c27a00926e2ea4c99b3d5e62c55b29faf06b |
|
28-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Remove the ISD::CALL and ISD::TAILCALL nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ce7518ce92f45568dc7d4cbb863284afb962fec5 |
|
26-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
initial selectiondag support for new INLINEASM node. Note that inline asms with outputs or inputs are not supported yet. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
acc398c195a697795bff3245943d104eb19192b9 |
|
25-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
First part of bug 680: Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same way as everything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6a5428934ba6159c1acc541944332e51a6cfa59a |
|
24-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Fix an infinite loop I caused by making sure to legalize the flag operand of CALLSEQ_* nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7cf11b4ab248d6ab7fb0d9df0b72baf158201abe |
|
23-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
another couple selects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8c6f1ee5aa376118f1cb7b16b62994fc255eac56 |
|
23-Jan-2006 |
Andrew Lenharth <andrewl@lenharth.org> |
another selectto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1b5db7aaec8bbe350b1af42ecfe97c73f0e07d0f |
|
16-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Constant fold ctpop/ctlz/cttz, and a couple other small cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cc0aad20dd1bac26f7da21fb9720df76cc3c26e7 |
|
15-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add a missing node name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5a67afc118d47a0061ca9809c763451ea3125306 |
|
13-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
add stacksave/stackrestore nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
140e99babce85d0a54fc5df7bdec4603e718ccb9 |
|
11-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
ignore register #0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
35ef913ec21de0f4f1b39c811b4335438717a9b8 |
|
11-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Add bswap, rotl, and rotr nodes Add dag combiner code to recognize rotl, rotr Add ppc code to match rotl Targets should add rotl/rotr patterns if they have them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
909addffc3c9391dfda2c67b7c05eeb42259eb90 |
|
09-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
New getNode() variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
abf6d1784b2d4bbcb7d20ab64881f77d755059f6 |
|
05-Jan-2006 |
Jim Laskey <jlaskey@mac.com> |
Added initial support for DEBUG_LABEL allowing debug specific labels to be inserted in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
512beb9465ec9d22de6352eee4339e8295bfb79b |
|
30-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Make sure to pass the offset into the new node, so that we don't silently drop it on the floor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c8547d856d3459a61ca9e35b5342288fe626c295 |
|
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fold bitconv(bitconv(x)) -> x. We now compile this: void foo(double); void bar(double X) { foo(X); } to this: bar: save -96, %o6, %o6 or %g0, %i0, %o0 or %g0, %i1, %o1 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -112, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i6+-16] ld [%i6+-12], %o1 ld [%i6+-16], %o0 call foo nop restore %g0, %g0, %g0 retl nop on V8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
94683777aee436a0e5f12e08a4b3827a11265fb2 |
|
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
constant fold bits_convert in getNode and in the dag combiner for fp<->int conversions. This allows V8 to compiles this: void %test() { call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null ) ret void } into: test: save -96, %o6, %o6 sethi 0, %o3 sethi 1049088, %o2 sethi 1048576, %o1 sethi 1040384, %o0 or %g0, %o3, %o4 call test2 nop restore %g0, %g0, %g0 retl nop instead of: test: save -112, %o6, %o6 sethi 0, %o4 sethi 1049088, %l0 st %o4, [%i6+-12] st %l0, [%i6+-16] ld [%i6+-12], %o3 ld [%i6+-16], %o2 sethi 1048576, %o1 sethi 1040384, %o0 call test2 nop restore %g0, %g0, %g0 retl nop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
35481892da1e5634bf497c8a0cabb1bb5a8b8fef |
|
23-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
add very simple support for the BIT_CONVERT node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0fcd40f501d99ce50b23f67e578a37f0943dec36 |
|
22-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7226158d7e3986e55b58214a749aa4eabb3fb6d5 |
|
20-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added a hook to print out names of target specific DAG nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
115c036a4c83cd277ffac0867a21b34f63829db7 |
|
20-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Print out opcode number if it's an unknown target node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9f8cc69009468a5096e32e897060ee0b5b9dddd8 |
|
19-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes, creating graphs that cannot be scheduled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f5395cee6a24699a016b2e379cf4804b09ce5030 |
|
16-Dec-2005 |
Jim Laskey <jlaskey@mac.com> |
Added source file/line correspondence for dwarf (PowerPC only at this point.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7038daf34272d58da160989dd97f0bce39f5b0b1 |
|
10-Dec-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added new getNode and getTargetNode variants for X86 stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8cfa57b1b4eade4e0101195b2f94ab288cd03563 |
|
06-Dec-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the SelectionDAG ISel how to turn ConstantPacked values into constant nodes with vector types. Also teach the asm printer how to print ConstantPacked constant pool entries. This allows us to generate altivec code such as the following, which adds a vector constantto a packed float. LCPI1_0: <4 x float> < float 0.0e+0, float 0.0e+0, float 0.0e+0, float 1.0e+0 > .space 4 .space 4 .space 4 .long 1065353216 ; float 1 .text .align 4 .globl _foo _foo: lis r2, ha16(LCPI1_0) la r2, lo16(LCPI1_0)(r2) li r4, 0 lvx v0, r4, r2 lvx v1, r4, r3 vaddfp v0, v1, v0 stvx v0, r4, r3 blr For the llvm code: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, < float 0.0, float 0.0, float 0.0, float 1.0 > store <4 x float> %tmp2, <4 x float> *%a ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fe14b34d83c085e6b7d46e915fdd9c21344e323b |
|
02-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
Don't remove two operand, two result nodes from the binary ops map. These should come from the arbitrary ops map. This fixes Regression/CodeGen/PowerPC/2005-12-01-Crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c5e6c649b5856c8f02726de014fa3d415a0cb87b |
|
01-Dec-2005 |
Chris Lattner <sabre@nondot.org> |
This is a bugfix for SelectNodeTo. In certain situations, we could be selecting a node and use a mix of getTargetNode() and SelectNodeTo. Because SelectNodeTo didn't check the CSE maps for a preexisting node and didn't insert its result into the CSE maps, we would sometimes miss a CSE opportunity. This is extremely rare, but worth fixing for completeness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
eb19e40efbd3cae80c908a30cdf4d33450733c45 |
|
30-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Make SelectNodeTo return N git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c85a9f37e92f972467962c82c08cc083c344243f |
|
30-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
CALLSEQ_START/END nodes don't get memoized, do not add them in when replaceAllUses'ing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
14229bb6369c110644c11bc7906b0c1167d3a87a |
|
30-Nov-2005 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a bug introduced by my last commit: TargetGlobalValues should key on GlobalValue * and index pair. Update getGlobalAddress() for symmetry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
61ca74bc3a29b2af2be7e4bd612289da8aae85b5 |
|
30-Nov-2005 |
Evan Cheng <evan.cheng@apple.com> |
Added an index field to GlobalAddressSDNode so it can represent X+12, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
36ce69195ed488034d0bb11180cc2ebd923679c8 |
|
29-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for a new STRING and LOCATION node for line number support, patch contributed by Daniel Berlin, with a few cleanups here and there by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ab48be377298bd509427a29e174cf4e305138819 |
|
22-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Check in code to scalarize arbitrarily wide packed types for some simple vector operations (load, add, sub, mul). This allows us to codegen: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } on ppc as: _foo: lfs f0, 12(r3) lfs f1, 8(r3) lfs f2, 4(r3) lfs f3, 0(r3) fadds f0, f0, f0 fadds f1, f1, f1 fadds f2, f2, f2 fadds f3, f3, f3 stfs f0, 12(r3) stfs f1, 8(r3) stfs f2, 4(r3) stfs f3, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0fb094fd60f3762f9031655e0223b3bfa72c5ac2 |
|
19-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add some method variants, patch by Evan Cheng git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5fbb5d2459a5410590f285250faa604576308a93 |
|
19-Nov-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach LLVM how to scalarize packed types. Currently, this only works on packed types with an element count of 1, although more generic support is coming. This allows LLVM to turn the following code: void %foo(<1 x float> * %a) { entry: %tmp1 = load <1 x float> * %a; %tmp2 = add <1 x float> %tmp1, %tmp1 store <1 x float> %tmp2, <1 x float> *%a ret void } Into: _foo: lfs f0, 0(r3) fadds f0, f0, f0 stfs f0, 0(r3) blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
51b8d54922350b7e1c2cd5a5183ef2c5f5d1b1d5 |
|
11-Nov-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
continued readcyclecounter support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
de202b3cda00f17ba2c047be7270b51f9585a413 |
|
10-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Switch the allnodes list from a vector of pointers to an ilist of nodes.This eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding nodes to the graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a32551197ab7f39bb2bff8cee24ecf70c2a40f6f |
|
09-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Change the ValueList array for each node to be shared instead of individuallyallocated. Further, in the common case where a node has a single value, justreference an element from a small array. This is a small compile-time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
65113b2f86ac0b714f3f580beb886d42c988c5b6 |
|
08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Switch the operandlist/valuelist from being vectors to being just an array.This saves 12 bytes from SDNode, but doesn't speed things up substantially (our graphs apparently already fit within the cache on my g5). In any case this reduces memory usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f469cb654600969db1131eb80002fc7ff53d1f5e |
|
08-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Clean up RemoveDeadNodes significantly, by eliminating the need for a temporary set and eliminating the need to iterate whenever something is removed (which can be really slow in some cases). Thx to Jim for pointing out something silly I was getting stuck on. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2a2de66db2093a5bc1fd620d1b6ae7992a552b24 |
|
23-Oct-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
add TargetExternalSymbol git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ded4963ab98c424a8e83f4dc0e63203754ca353b |
|
13-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Move some Legalize functionality over to the DAGCombiner where it belongs. Kill some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3892560680e244601e52080f448df75988d89663 |
|
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
This function is now dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
af21d55aee8d6852fedfd630395a3c7c95df8f12 |
|
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Enable Nate's excellent DAG combiner work by default. This allows the removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ee899e6bfc854adefdbfd6631e206d18fd43ab81 |
|
10-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
(X & Y) & C == 0 if either X&C or Y&C are zero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9a9719eea1d134809c582754188cc10df1021717 |
|
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
remove debugging code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c4ced268d8d35942eb57aac2ce8d5dc7580cae94 |
|
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
implement CodeGen/PowerPC/div-2.ll:test2-4 by propagating zero bits through C-X's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6c4dad0b8bd75f827c83a92245df54e1f776bc61 |
|
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
094c8fcd14a04a3bac12eb17e7e04276ce594e11 |
|
07-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Turn sdivs into udivs when we can prove the sign bits are clear. This implements CodeGen/PowerPC/div-2.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0558f61b0c758344ce18c548e4046b794610ea42 |
|
05-Oct-2005 |
Nate Begeman <natebegeman@mac.com> |
Let the combiner handle more cases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ea0b47f81caeb53f9594dd3f7702ae01c4f2cc6 |
|
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
implement visitBR_CC so that PowerPC/inverted-bool-compares.ll passes with the dag combiner. This speeds up espresso by 8%, reaching performance parity with the dag-combiner-disabled llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ad13715ed4068a347452de9a86f5c1a702458f83 |
|
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
fix some pastos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9503859c545496838165a340b1e1730dc1b83736 |
|
05-Oct-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new HandleNode class, which is used to handle (haha) cases in the dead node elim and dag combiner passes where the root is potentially updated. This fixes a fixme in the dag combiner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
01b3d73c20f5afb8265ae943a8ba23c2238c5eea |
|
29-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add FP versions of the binary operators, keeping the int and fp worlds seperate. Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5ae7911b2437aec6f695d6820284ff7bc60ec97a |
|
23-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Turn (X^C1) == C2 into X == C1^C2 iff X&~C1 = 0 (and move a function) This happens all the time on PPC for bool values, e.g. eliminating a xori in inverted-bool-compares.ll. This should be added to the dag combiner as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3ec5d74fc5bc03bdb3ab5876799dff4d82e38193 |
|
10-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a problem duraid encountered on itanium where this folding: select (x < y), 1, 0 -> (x < y) incorrectly: the setcc returns i1 but the select returned i32. Add the zero extend as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
08addbd4770a60adb6dbdc29cf73e7720f08197a |
|
10-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a crash viewing dags that have target nodes in them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
39ee1ac7e58a66aff7f6986c04878bb7e1bc5b5d |
|
09-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Last round of 2-node folds from SD.cpp. Will move on to 3 node ops such as setcc and select next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
223df2269da508eadc160e34e0dc03c9e02e7d0b |
|
08-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Move yet more folds over to the dag combiner from sd.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
998011927000c8150499bb887ca0d68bb1ff38c2 |
|
08-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Another round of dag combiner changes. This fixes some missing XOR folds as well as fixing how we replace old values with new values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1e111c7bbb50eec1cb1ebc7d12fcfb22c36f8d87 |
|
07-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug nate ran into with replacealluseswith. In the recursive cse case, we were losing a node, causing an assertion to fail. Now we eagerly delete discovered CSE's, and provide an optional vector to keep track of these discovered equivalences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6a8a21ced4fd1bb3655aa3b5990a6e9b65022089 |
|
03-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a checking failure in gs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
70b9b1098a82990cca7804ba6425e7aa151ea8b4 |
|
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Make sure to auto-cse nullary ops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6621e3b9636174886c9665b648f2ddc13effbc8a |
|
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Fix some buggy logic where we would try to remove nodes with two operands from the binary ops map, even if they had multiple results. This latent bug caused a few failures with the dag isel last night. To prevent stuff like this from happening in the future, add some really strict checking to make sure that the CSE maps always match up with reality! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4ed11b4b791422af543c87d5451183a2a1081e80 |
|
02-Sep-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for ANY_EXTEND and add a few minor folds for it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
39f60a230243d8da02f5e17be3f8918f689ec72b |
|
02-Sep-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix some code in the current node combining code, spotted when it was moved over to DAGCombiner.cpp 1. Don't assume that SetCC returns i1 when folding (xor (setcc) constant) 2. Don't duplicate code in folding AND with AssertZext that is handled by MaskedValueIsZero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7383ce4127f0e1d9ff4eaaa7dac8e71e02d860c6 |
|
31-Aug-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ precedence warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23169 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fe75a2836abd15557cf21a5cc34a7048cbba654f |
|
31-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Sigh, not my day. Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9f52f2838d99774d3262bfce7b22d70a7a3f0196 |
|
31-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix a mistake in my previous patch pointed out by sabre; the AssertZext case in MaskedValueIsZero was wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b85dfab8898807d592ea96acf19f41ebcd9e8813 |
|
31-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove some unnecessary casts, and add the AssertZext case to MaskedValueIsZero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23164 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0fdd7680948a6facf34e0791bd2dfa8b5a2e4942 |
|
31-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow physregs to occur in the dag with multiple types. Though I don't likethis, it is a requirement on PPC, which can have an f32 value in r3 at onepoint in a function and a f64 value in r3 at another point. :( This fixes compilation of mesa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5ffcd9b56c527c060b6d7c128610916f6afb507a |
|
30-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove a bogus piece of my AssertSext/AssertZext patch. oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
56eb86806d5d178d42108f17d11098b3e640b996 |
|
30-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add support for AssertSext and AssertZext, folding other extensions with them. This allows for elminination of redundant extends in the entry blocks of functions on PowerPC. Add support for i32 x i32 -> i64 multiplies, by recognizing when the inputs to ISD::MUL in ExpandOp are actually just extended i32 values and not real i64 values. this allows us to codegen int mulhs(int a, int b) { return ((long long)a * b) >> 32; } as: _mulhs: mulhw r3, r4, r3 blr instead of: _mulhs: mulhwu r2, r4, r3 srawi r5, r3, 31 mullw r5, r4, r5 add r2, r2, r5 srawi r4, r4, 31 mullw r3, r4, r3 add r3, r2, r3 blr with a similar improvement on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c26aefa15ae7f02b37923f6fed5a74d60e76ff56 |
|
29-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add a new API for Nate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff01698ec037050fd9452d3b3486de568024ee72 |
|
29-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in ReplaceAllUsesWith git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
579cfabdade805651c42971a22ae042dba3a33c4 |
|
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Checking types here is not safe, because multiple types can map to the same register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8b52f21f100b090c49fc264fc482942c767eaa18 |
|
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Revampt ReplaceAllUsesWith to be more efficient and easier to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5839bf2b3bd22689d9dd0e9de66c2dce71d130ae |
|
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Change ConstantPoolSDNode to actually hold the Constant itself instead of putting it into the constant pool. This allows the isel machinery to create constants that it will end up deciding are not needed, without them ending up in the resultant function constant pool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2bb06cdf27905cf95bd39e4120f1ad57c68ac73e |
|
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a huge annoyance: SelectNodeTo took types before the opcode unlike every other SD API. Fix it to take the opcode before the types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f07d023dd9a4638dc157d1361482c780117c1302 |
|
26-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a nasty bug from a previous patch of mine git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1999b4b974d2674e94953c32e5e4a47ede7664b4 |
|
25-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
New fold for SELECT_CC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
43247a157b613dbf3caedacdbb171a9d653e3ef5 |
|
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Don't auto-cse nodes that return flags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9d338cf3a3888c18cb031e6bf7633992c0c0b8a0 |
|
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
simplify the code a bit using isOperationLegal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4025a9c2cc4ac3b9efa465a2f64be50fdaba9da9 |
|
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
ADd support for TargetConstantPool nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
afb2dd43de61f4585e75d1f3ab93a9ac4b3b7592 |
|
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a new TargetFrameIndex node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7651fa4a7ed1c81abb004847af1eeb3beb9c88fd |
|
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7b2880c4cd29f5a90ac8af897f970b3199a9bbb1 |
|
25-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add ReplaceAllUsesWith that can take a vector of replacement values. Add some foldings to hopefully help the illegal setcc issue, and move some code around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1d6373c1af26236385e41b52b3a4d93c00bf7431 |
|
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
teach selection dag mask tracking about the fact that select_cc operates like select. Also teach it that the bit count instructions can only set the low bits of the result, depending on the size of the input. This allows us to compile this: int %eq0(int %a) { %tmp.1 = seteq int %a, 0 ; <bool> [#uses=1] %tmp.2 = cast bool %tmp.1 to int ; <int> [#uses=1] ret int %tmp.2 } To this: _eq0: cntlzw r2, r3 srwi r3, r2, 5 blr instead of this: _eq0: cntlzw r2, r3 rlwinm r3, r2, 27, 31, 31 blr when setcc is marked illegal on ppc (which restores parity to non-illegal setcc). Thanks to Nate for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cebd433d8de9cdfeea4a27341e4afea7ca5fca67 |
|
24-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach SelectionDAG how to simplify a few more setcc-equivalent select_cc nodes so that backends don't have to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0750a40a4ff494a2dec24f5761149b8b00e642c5 |
|
24-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix optimization of select_cc seteq X, 0, 1, 0 -> srl (ctlz X), log2 X size git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7042f15bded917ba68e5e66be873ad4d06f9ca2d |
|
23-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Teach the SelectionDAG how to transform select_cc eq, X, 0, 1, 0 into either seteq X, 0 or srl (ctlz X), size(X-1), depending on what's legal for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c975e1dedcffd55894a14b41ccdb7255aaf19034 |
|
22-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add anew method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
99baddaf57e0ae8eb7e09504262b47e7ed44520e |
|
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6b09a296049d765ad663ae21ab1b26ce7c2c93ae |
|
21-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
aaaa0b67dd0a943ee9275c42d7df4bd244d52c95 |
|
20-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for TargetGlobalAddress nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fa164b61d11a3fe4056c8e9b97209bfda6c0b61b |
|
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in previous commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7228aa78686c2920c0f8588628b1278698720d07 |
|
19-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Print physreg register nodes with target names (e.g. F1) instead of numbers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a92b7c36e97c22bf528706bfceb568ff512de751 |
|
19-Aug-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ precedence warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
294a0a103d561864f2089b9f5948fb1a49801918 |
|
18-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add support for target DAG nodes that take 4 operands, such as PowerPC's rlwinm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a23e8154dc58a62225074bb4eb1633c363ce331b |
|
18-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix printing of VTSDNodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
58b968be853ef02d0f448e5e2c31676e361c210f |
|
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Move the code dependency for MathExtras.h from SelectionDAGNodes.h. Added some class dividers in SelectionDAG.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
cb6682fa44e13262bdef7dd22b4ba90f8c2e7b97 |
|
17-Aug-2005 |
Jim Laskey <jlaskey@mac.com> |
Culling out use of unions for converting FP to bits and vice versa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8b8749f367fd30a8a3d57284576a6d59b60b69eb |
|
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in RemoveDeadNodes where it would crash when its "optional" argument is not specified. Implement ReplaceAllUsesWith. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
37bfbb47de5381704471af6178bfbba29260297c |
|
17-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a new TargetConstant node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d5d0f9bd20d9df07d6b4d41b7e8ed6d33b6a649d |
|
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate the RegSDNode class, which 3 nodes (CopyFromReg/CopyToReg/ImplicitDef) used to tack a register number onto the node. Instead of doing this, make a new node, RegisterSDNode, which is a leaf containing a register number. These three operations just become normal DAG nodes now, instead of requiring special handling. Note that with this change, it is no longer correct to make illegal CopyFromReg/CopyToReg nodes. The legalizer will not touch them, and this is bad, so don't do it. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7cbd525ba85ebe440d15fa359ec940e404d14906 |
|
16-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Implement BR_CC and BRTWOWAY_CC. This allows the removal of a rather nasty fixme from the PowerPC backend. Emit slightly better code for legalizing select_cc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f3e133a35f5aa6ed32ca29aa3675eff349d61008 |
|
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Allow passing a dag into dump and getOperationName. If one is available when printing a node, use it to render target operations with their target instruction name instead of "<<unknown>>". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
149c58ce0b94e64faf3c4ccdbf894061cf7d66e1 |
|
16-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Add some methods for dag->dag isel. Split RemoveNodeFromCSEMaps out of DeleteNodesIfDead to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff66368a5f83ed62cb7817efc4a16b78c449a4c0 |
|
13-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Remove an unncessary argument to SimplifySelectCC and add an additional assert when creating a select_cc node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
32c392a3a5e397b5f1cc83aaedfab96368d11e8a |
|
13-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix the fabs regression on x86 by abstracting the select_cc optimization out into SimplifySelectCC. This allows both ISD::SELECT and ISD::SELECT_CC to use the same set of simplifying folds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3e27b1f5c4bbbc5729a154b9b76b4231bb0ad9b9 |
|
13-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
implement a couple of simple shift foldings. e.g. (X & 7) >> 3 -> 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e1fae4a3aeeb1c0f349f9b02a4d6b8fc0a6a9934 |
|
11-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add a select_cc optimization for recognizing abs(int). This speeds up an integer MPEG encoding loop by a factor of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e5d63829fd62d815a330c21ea316e6b4cf943562 |
|
11-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Some SELECT_CC cleanups: 1. move assertions for node creation to getNode() 2. legalize the values returned in ExpandOp immediately 3. Move select_cc optimizations from SELECT's getNode() to SELECT_CC's, allowing them to be cleaned up significantly. This paves the way to pick up additional optimizations on SELECT_CC, such as sum-of-absolute-differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9373a81e53ce5f9f2c06c4209b8b886605aece08 |
|
10-Aug-2005 |
Nate Begeman <natebegeman@mac.com> |
Add new node, SELECT_CC. This node is for targets that don't natively implement SELECT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7c6e452d4415abaeb562958bbae1ca1bc2eb6809 |
|
10-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix an oversight that may be causing PR617. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bd8625b062c468ccd62b713993a45e8dd40e67a7 |
|
10-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix spelling, fix some broken canonicalizations by my last patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
079a27a0deca2501485da55701632cf9ebe4e8c4 |
|
09-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add cc nodes to the AllNodes list so they show up in Graphviz output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7cf7e3f33f25544d08492d47cc8a1cbba25dc8d7 |
|
09-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate the SetCCSDNode in favor of a CondCodeSDNode class. This pulls the CC out of the SetCC operation, making SETCC a standard ternary operation and CC's a standard DAG leaf. This will make it possible for other node to use CC's as operands in the future... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
bf3fa976ee85528712669c9513a4eed351fcb3bb |
|
07-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
add a small simplification that can be exposed after promotion/expansion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c534395cb22202e66f27abe99dd9c153b4a68b14 |
|
05-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a use-of-dangling-pointer bug, from the introduction of SrcValue's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0561b3ff9fd08f9cda48551f2f91590ca5f60656 |
|
02-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Update to use the new MathExtras.h support for log2 computation. Patch contributed by Jim Laskey! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
00b16889ab461b7ecef1c91ade101186b7f1fce2 |
|
27-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Eliminate all remaining tabs and trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5f056bf4b862a7c31388a68711dd3b3ed5de2be8 |
|
10-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Change *EXTLOAD to use an VTSDNode operand instead of being an MVTSDNode. This is the last MVTSDNode. This allows us to eliminate a bunch of special case code for handling MVTSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9fadb4c1c0a6d223aa468f9f72f8c2562dc66839 |
|
10-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Change TRUNCSTORE to use a VTSDNode operand instead of being an MVTSTDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
15e4b01920d6a0ffbe35d3e5aa88a4b42970b6a7 |
|
10-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
Introduce a new VTSDNode class with the ultimate goal of eliminating the MVTSDNode class. This class is used to provide an operand to operators that require an extra type. We start by converting FP_ROUND_INREG and SIGN_EXTEND_INREG over to using it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
06ef88472f7bac3512e224974e87a0a456471b82 |
|
29-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
restore old srcValueNode behavior and try to to work around it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
782ad62f334c732143047950dff4a1692538735d |
|
29-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
tracking the instructions causing loads and stores provides more information than just the pointer being loaded or stored git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
41aaf7016ebf205d8b02c857461f679a3e82f9d0 |
|
16-Jun-2005 |
Nate Begeman <natebegeman@mac.com> |
Fix bug 537 test 2, which checks to make sure that we fold A+(B-A) -> B for integer types. Add a couple checks to not perform these kinds of transform on floating point values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e5eb6f829c983dfe0da6634f5ea46a2bf16f359e |
|
15-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add some simplifications for MULH[SU]. This allows us to compile this: long %bar(long %X) { %Y = mul long %X, 4294967297 ret long %Y } to this: l1_bar: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, %EAX add %EDX, DWORD PTR [%ESP + 8] ret instead of: l1_bar: mov %ECX, DWORD PTR [%ESP + 4] mov %EDX, 1 mov %EAX, %ECX mul %EDX add %EDX, %ECX add %EDX, DWORD PTR [%ESP + 8] mov %EAX, %ECX ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3e01136f9fc2e1db9207d278002e76e6175783e9 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
remove special case hacks for readport/readio from the binary operator codepath git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
385328ce416e2b98d7113a75d9413a56a2b10318 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Implement fixme's by memoizing nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b7f7d514220693728b90dfc8293b964fadd58df2 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Turn this into a wrapper for a simpler version of getNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
adf6c2a0cb638e8b211200b57b927d16f6e1cfc4 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate special purpose hacks for dynamic_stack_alloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e89083a9300dc463e3b79eabe2b9913d85338d28 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Use the general mechanism for creating multi-value nodes instead of using special case hacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5fa4fa4e0fde8aebc55a05258d2a274f3c7e1df6 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
Wrap long line, actually add node to the graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
89c34637cb471609343c2e4f4b08a81779189aa7 |
|
14-May-2005 |
Chris Lattner <sabre@nondot.org> |
add a getNode() version that allows construction of any node type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d71c04199c447de39a2cab240c2fb7f717973e20 |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
Handle TAILCALL node git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a364fa126a686035909d15a87c4dfd2abc60363c |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
fix a bad typeo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
16cd04d26c53c6f81313cafb85f6c0e7a07cdff6 |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6980d8295f415caa752b45c745c25a9be0079a9a |
|
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
handle a common case generated by the uint64 -> FP code path better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
88de6e77bfadea8962b017f372658204ab71448c |
|
12-May-2005 |
Chris Lattner <sabre@nondot.org> |
Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -C git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
27e9b4146417a9bdbade90d0ecc32c9567694a87 |
|
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Do not memoize ADJCALLSTACKDOWN nodes, provide a method to hack on them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
276260b16d8771f96afb919a8ee0811254f5c275 |
|
11-May-2005 |
Chris Lattner <sabre@nondot.org> |
Print bit count nodes correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
19bb2283e6b3ce2bcb8bbbe76c61682caae3ddc7 |
|
10-May-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Silence some VC++ warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3c6910153c2913ea3e566bbbeb4070f15bfae2f4 |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for READPORT, WRITEPORT, READIO, WRITEIO git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
57aa5961a92b633e668038963fc655d74afe679d |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Fold shifts into subsequent SHL's. These shifts often arise due to addrses arithmetic lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd414a27fdc85e45af00ed4329cb0e6508470dea |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Don't use the load/store instruction as the source pointer, use the pointer being stored/loaded through! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0437cdd6dc204a77854a61bf19f33cd272224d10 |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
memoize all nodes, even null Value* nodes. Do not add two token chain outputs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2bf3c26b2bb783aada259f1c70be6dd0798f6126 |
|
09-May-2005 |
Chris Lattner <sabre@nondot.org> |
Print SrcValue nodes correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
691ef2ba066dda14ae4ac0ad645054fbc967785a |
|
03-May-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Implement count leading zeros (ctlz), count trailing zeros (cttz), and count population (ctpop). Generic lowering is implemented, however only promotion is implemented for SelectionDAG at the moment. More coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7f64464ff100bcb7661b65c74c13dc88e83eb65b |
|
28-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Add FSQRT, FSIN, FCOS nodes, patch contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2d86ea21dd76647cb054fd5d27df9e49efc672b6 |
|
27-Apr-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Implement Value* tracking for loads and stores in the selection DAG. This enables one to use alias analysis in the backends. (TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*. Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d36f979085048f0d24dbe4a5584acd89153940a8 |
|
26-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold (X > -1) | (Y > -1) --> (X&Y > -1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
229ab2e7b24847ea0d248d3d8b3d83adc8e5f5fe |
|
25-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
implement some more logical compares with constants, so that: int foo1(int x, int y) { int t1 = x >= 0; int t2 = y >= 0; return t1 & t2; } int foo2(int x, int y) { int t1 = x == -1; int t2 = y == -1; return t1 & t2; } produces: _foo1: or r2, r4, r3 srwi r2, r2, 31 xori r3, r2, 1 blr _foo2: and r2, r4, r3 addic r2, r2, 1 li r2, 0 addze r3, r2 blr instead of: _foo1: srwi r2, r4, 31 xori r2, r2, 1 srwi r3, r3, 31 xori r3, r3, 1 and r3, r2, r3 blr _foo2: addic r2, r4, 1 li r2, 0 addze r2, r2 addic r3, r3, 1 li r3, 0 addze r3, r3 and r3, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6ea927930433f5e22acd2316e34e7c7e48ac1a60 |
|
25-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Codegen x < 0 | y < 0 as (x|y) < 0. This allows us to compile this to: _foo: or r2, r4, r3 srwi r3, r2, 31 blr instead of: _foo: srwi r2, r4, 31 srwi r3, r3, 31 or r3, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dedf2bd5a34dac25e4245f58bb902ced6b64edd9 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
edf128a7fa90f2b0b7ee24741a04a7ae1ecd6f7e |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
588bbbffa1cf29201c72b8b3f04c6330f4bde2dd |
|
21-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Improve and elimination. On PPC, for: bool %test(int %X) { %Y = and int %X, 8 %Z = setne int %Y, 0 ret bool %Z } we now generate this: rlwinm r2, r3, 0, 28, 28 srwi r3, r2, 3 instead of this: rlwinm r2, r3, 0, 28, 28 srwi r2, r2, 3 rlwinm r3, r2, 0, 31, 31 I'll leave it to Nate to get it down to one instruction. :) --------------------------------------------------------------------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1c2a9b95dc73c6fd11052e384ea5b10d011abb66 |
|
21-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold (x & 8) != 0 and (x & 8) == 8 into (x & 8) >> 3. This turns this PPC code: rlwinm r2, r3, 0, 28, 28 cmpwi cr7, r2, 8 mfcr r2 rlwinm r3, r2, 31, 31, 31 into this: rlwinm r2, r3, 0, 28, 28 srwi r2, r2, 3 rlwinm r3, r2, 0, 31, 31 Next up, nuking the extra and. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fda2b55e1b169044828c8f7b2cba073bfd455dd5 |
|
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold setcc of MVT::i1 operands into logical operations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4a44c8df1984ebcb253dda283bd2c117cbbb1929 |
|
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Another minor simplification: handle setcc (zero_extend x), c -> setcc(x, c') git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7467c9b086d3917333ece77e9fc8624922d42ef1 |
|
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Another simple xform git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
706aa9685ad74e4825544064bf28aa5b42578812 |
|
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold: // (X != 0) | (Y != 0) -> (X|Y != 0) // (X == 0) & (Y == 0) -> (X|Y == 0) Compiling this: int %bar(int %a, int %b) { entry: %tmp.1 = setne int %a, 0 %tmp.2 = setne int %b, 0 %tmp.3 = or bool %tmp.1, %tmp.2 %retval = cast bool %tmp.3 to int ret int %retval } to this: _bar: or r2, r3, r4 addic r3, r2, -1 subfe r3, r3, r2 blr instead of: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r3, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
36019aa5c66abfa0cd55a21004dfef79ab2a3cde |
|
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Make the AND elimination operation recursive and significantly more powerful, eliminating an and for Nate's testcase: int %bar(int %a, int %b) { entry: %tmp.1 = setne int %a, 0 %tmp.2 = setne int %b, 0 %tmp.3 = or bool %tmp.1, %tmp.2 %retval = cast bool %tmp.3 to int ret int %retval } generating: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r3, r2, r3 blr instead of: _bar: addic r2, r3, -1 subfe r2, r2, r3 addic r3, r4, -1 subfe r3, r3, r4 or r2, r2, r3 rlwinm r3, r2, 0, 31, 31 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
72ea281d61c74abfa875d4d7ba614a993119df8a |
|
14-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Add a couple missing transforms in getSetCC that were triggering assertions in the PPC Pattern ISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
eea805e74ce49f98e03c87a20cf2e6a6ff1b7c52 |
|
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Disbale the broken fold of shift + sz[ext] for now Move the transform for select (a < 0) ? b : 0 into the dag from ppc isel Enable the dag to fold and (setcc, 1) -> setcc for targets where setcc always produces zero or one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
97e001dec7d8972c2734ea63ca020d9136172ba0 |
|
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
fix an infinite loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd8d389edef29f6442cb4e32ee4b7ffe1d0c71d7 |
|
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
fix some serious miscompiles on ia64, alpha, and ppc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
51679c430f1c02cea0717bb20d9b7eac84adf9b2 |
|
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
avoid work when possible, perhaps fix the problem nate and andrew are seeing with != 0 comparisons vanishing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e666fcfbdd1c2a8f47c4577ef4ff4a8280099e28 |
|
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
add back the optimization that Nate added for shl X, (zext_inreg y) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a8dbfa57cb8bf6bf98a5cfc434dff4d9bdf5e0b |
|
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Oops, remove these too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0f2287baa18fb1c6a7e8ba42ba5163c2845b8654 |
|
13-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Remove all foldings of ZERO_EXTEND_INREG, moving them to work for AND nodes instead. OVerall, this increases the amount of folding we can do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
db81ebab89796551eb74100f0c294fae2446d6be |
|
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fold shift x, [sz]ext(y) -> shift x, y git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b882752bd04602249d391699dc7183de007f8964 |
|
13-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Fold shift by size larger than type size to undef Make llvm undef values generate ISD::UNDEF nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd1f1ee0baf9c808fdee14bdbfe76d4a5e66210d |
|
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Remove some redundant checks, add a couple of new ones. This allows us to compile this: int foo (unsigned long a, unsigned long long g) { return a >= g; } To: foo: movl 8(%esp), %eax cmpl %eax, 4(%esp) setae %al cmpl $0, 12(%esp) sete %cl andb %al, %cl movzbl %cl, %eax ret instead of: foo: movl 8(%esp), %eax cmpl %eax, 4(%esp) setae %al movzbw %al, %cx movl 12(%esp), %edx cmpl $0, %edx sete %al movzbw %al, %ax cmpl $0, %edx cmove %cx, %ax movzbl %al, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
3b2c1d95a27479a0d6ce2e6fcd1f81185568bb31 |
|
12-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
canonicalize x <u 1 -> x == 0. On this testcase: unsigned long long g; unsigned long foo (unsigned long a) { return (a >= g) ? 1 : 0; } It changes the ppc code from: _foo: .LBB_foo_0: ; entry mflr r11 stw r11, 8(r1) bl "L00000$pb" "L00000$pb": mflr r2 addis r2, r2, ha16(L_g$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_g$non_lazy_ptr-"L00000$pb")(r2) lwz r4, 0(r2) lwz r2, 4(r2) cmplw cr0, r3, r2 li r2, 1 li r3, 0 bge .LBB_foo_2 ; entry .LBB_foo_1: ; entry or r2, r3, r3 .LBB_foo_2: ; entry cmplwi cr0, r4, 1 li r3, 1 li r5, 0 blt .LBB_foo_4 ; entry .LBB_foo_3: ; entry or r3, r5, r5 .LBB_foo_4: ; entry cmpwi cr0, r4, 0 beq .LBB_foo_6 ; entry .LBB_foo_5: ; entry or r2, r3, r3 .LBB_foo_6: ; entry rlwinm r3, r2, 0, 31, 31 lwz r11, 8(r1) mtlr r11 blr to: _foo: .LBB_foo_0: ; entry mflr r11 stw r11, 8(r1) bl "L00000$pb" "L00000$pb": mflr r2 addis r2, r2, ha16(L_g$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_g$non_lazy_ptr-"L00000$pb")(r2) lwz r4, 0(r2) lwz r2, 4(r2) cmplw cr0, r3, r2 li r2, 1 li r3, 0 bge .LBB_foo_2 ; entry .LBB_foo_1: ; entry or r2, r3, r3 .LBB_foo_2: ; entry cntlzw r3, r4 srwi r3, r3, 5 cmpwi cr0, r4, 0 beq .LBB_foo_4 ; entry .LBB_foo_3: ; entry or r2, r3, r3 .LBB_foo_4: ; entry rlwinm r3, r2, 0, 31, 31 lwz r11, 8(r1) mtlr r11 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2bb6f412820cad829e1dd3ea4bd8a1b26c8c23b6 |
|
11-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Don't bother sign/zext_inreg'ing the result of an and operation if we know the result does change as a result of the extend. This improves codegen for Alpha on this testcase: int %a(ushort* %i) { %tmp.1 = load ushort* %i %tmp.2 = cast ushort %tmp.1 to int %tmp.4 = and int %tmp.2, 1 ret int %tmp.4 } Generating: a: ldgp $29, 0($27) ldwu $0,0($16) and $0,1,$0 ret $31,($26),1 instead of: a: ldgp $29, 0($27) ldwu $0,0($16) and $0,1,$0 addl $0,0,$0 ret $31,($26),1 btw, alpha really should switch to livein/outs for args :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
45278e37eb9823ceabdaab6b27dabf3b5dcdcede |
|
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fold zext_inreg(zextload), likewise for sext's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
edeecfcbd5ae3fe6d7e65107203a93ed196aaf1b |
|
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
add a simple xform git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
dea29e25c32d2651e2efaff67bc30803ea24d991 |
|
10-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a thinko. If the operand is promoted, pass the promoted value into the new zero extend, not the original operand. This fixes cast bool -> long on ppc. Add an unrelated fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a2daa8c78d8749d6b4743e8bbfe4d522cd13a669 |
|
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
add a little peephole optimization. This allows us to codegen: int a(short i) { return i & 1; } as _a: andi. r3, r3, 1 blr instead of: _a: rlwinm r2, r3, 0, 16, 31 andi. r3, r2, 1 blr on ppc. It should also help the other risc targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
59723e96987bdbfbada75fdbf1742f6a28d90d7d |
|
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
recognize some patterns as fabs operations, so that fabs at the source level is deconstructed then reconstructed here. This catches 19 fabs's in 177.mesa 9 in 168.wupwise, 5 in 171.swim, 3 in 172.mgrid, and 14 in 173.applu out of specfp2000. This allows the X86 code generator to make MUCH better code than before for each of these and saves one instr on ppc. This depends on the previous CFE patch to expose these correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ef847df0870b9e3407bdc24ccb9db9ba2df817e6 |
|
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
print and fold BRCONDTWOWAY correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
485df9b84b5753154d3762b2a176b8b6684f716f |
|
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
canonicalize a bunch of operations involving fneg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5a6bace3ab8db44e5412a773626fbb76fb316767 |
|
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
If a target zero or sign extends the result of its setcc, allow folding of this into sign/zero extension instructions later. On PPC, for example, this testcase: %G = external global sbyte implementation void %test(int %X, int %Y) { %C = setlt int %X, %Y %D = cast bool %C to sbyte store sbyte %D, sbyte* %G ret void } Now codegens to: cmpw cr0, r3, r4 li r3, 1 li r4, 0 blt .LBB_test_2 ; .LBB_test_1: ; or r3, r4, r4 .LBB_test_2: ; addis r2, r2, ha16(L_G$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_G$non_lazy_ptr-"L00000$pb")(r2) stb r3, 0(r2) instead of: cmpw cr0, r3, r4 li r3, 1 li r4, 0 blt .LBB_test_2 ; .LBB_test_1: ; or r3, r4, r4 .LBB_test_2: ; *** rlwinm r3, r3, 0, 31, 31 addis r2, r2, ha16(L_G$non_lazy_ptr-"L00000$pb") lwz r2, lo16(L_G$non_lazy_ptr-"L00000$pb")(r2) stb r3, 0(r2) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2467392c5931579e2354b9e64e8ecf6cc5192d13 |
|
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Remove somethign I had for testing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
67255a1d1783c126c1cbd4982670a61bc63aacce |
|
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
This patch does two things. First, it canonicalizes 'X >= C' -> 'X > C-1' (likewise for <= >=u >=u). Second, it implements a special case hack to turn 'X gtu SINTMAX' -> 'X lt 0' On powerpc, for example, this changes this: lis r2, 32767 ori r2, r2, 65535 cmplw cr0, r3, r2 bgt .LBB_test_2 into: cmpwi cr0, r3, 0 blt .LBB_test_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8e8bd656b3eeb69947719c3673f37756f1b2a466 |
|
07-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a really scary bug that Nate found where we weren't deleting the right elements auto of the autoCSE maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1867054643c20c3027421ab7711664b4d55fe4c6 |
|
06-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Add MULHU and MULHS nodes for the high part of an (un)signed 32x32=64b multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ff9fd0a99c00a5ec17b867365bd2c22fb4061363 |
|
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
print fneg/fabs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5b359c6c4f052e41579ad7da9af37db4f54207d9 |
|
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
fix some bugs in the implementation of SHL_PARTS and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
41be951a47d2141a3c6693c0b598509c889f3f37 |
|
02-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Print some new nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fc1b1dad88a256ab5ab16dd548ad82df8efa2ca9 |
|
02-Apr-2005 |
Nate Begeman <natebegeman@mac.com> |
Add ISD::UNDEF node Teach the SelectionDAG code how to expand and promote it Have PPC32 LowerCallTo generate ISD::UNDEF for int arg regs used up by fp arguments, but not shadowing their value. This allows us to do the right thing with both fixed and vararg floating point arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
95762124a1d781cc0f8cbc4c22e9c5c1358d7ea0 |
|
31-Mar-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
PCMarker support for DAG and Alpha git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ee639f1760ea3d22c46b141393eab611a4de2200 |
|
10-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we would incorrectly do a sign ext instead of a zero ext because we were checking the wrong thing. Thanks to andrew for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
14723c264d26c9387e27b0e7d5deaf225effe484 |
|
09-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
constant fold FP_ROUND_INREG, ZERO_EXTEND_INREG, and SIGN_EXTEND_INREG This allows the alpha backend to compile: bool %test(uint %P) { %c = seteq uint %P, 0 ret bool %c } into: test: ldgp $29, 0($27) ZAP $16,240,$0 CMPEQ $0,0,$0 AND $0,1,$0 ret $31,($26),1 instead of: test: ldgp $29, 0($27) ZAP $16,240,$0 ldiq $1,0 ZAP $1,240,$1 CMPEQ $0,$1,$0 AND $0,1,$0 ret $31,($26),1 ... and fixes PR534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d8658616cf8b6ad984974bb764dc9ee4b77499aa |
|
17-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Don't rely on doubles comparing identical to each other, which doesn't work for 0.0 and -0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b48da3953642d3d006edebd7fc6c1ca5bcfdb5cd |
|
23-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Remove the 3 HACK HACK HACKs I put in before, fixing them properly with the new TLI that is available. Implement support for handling out of range shifts. This allows us to compile this code (a 64-bit rotate): unsigned long long f3(unsigned long long x) { return (x << 32) | (x >> (64-32)); } into this: f3: mov %EDX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP + 8] ret GCC produces this: $ gcc t.c -masm=intel -O3 -S -o - -fomit-frame-pointer .. f3: push %ebx mov %ebx, DWORD PTR [%esp+12] mov %ecx, DWORD PTR [%esp+8] mov %eax, %ebx mov %edx, %ecx pop %ebx ret The Simple ISEL produces (eww gross): f3: sub %ESP, 4 mov DWORD PTR [%ESP], %ESI mov %EDX, DWORD PTR [%ESP + 8] mov %ECX, DWORD PTR [%ESP + 12] mov %EAX, 0 mov %ESI, 0 or %EAX, %ECX or %EDX, %ESI mov %ESI, DWORD PTR [%ESP] add %ESP, 4 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7cd50cf286c5f16ca633080b3d78ee4dd2094a9f |
|
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
More bugfixes for IA64 shifts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a7306db5f7cb7376da77237ada0bd624f99fec6c |
|
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add a nasty hack to fix Alpha/IA64 multiplies by a power of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
9bb86f46e134bf75d1dd76d9865156fb67eb24eb |
|
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Remove unneeded line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
1e7ceaf0a0ff966725957f123bd6958f6884d674 |
|
22-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a93ec3ebfb2b6382c79e577cff4c05c204ed4544 |
|
21-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Unary token factor nodes are unneeded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
17eee18f40c79cd6ed00985201d395f8da50c417 |
|
20-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
implement add_parts/sub_parts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
39908e0ce0d8bd9de3c53271f0d27ab9d75816ad |
|
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Know some identities about tokenfactor nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
88218ef706ba6fffc3b3f3c894910eea0f59abb1 |
|
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Know some simple identities. This improves codegen for (1LL << N). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4a9b4f1943c6c56c749c8709ed28680408afc577 |
|
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Keep track of the retval type as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f30b73b1c6b6ca8453dc61eb3777b4e4414d3839 |
|
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Allow setcc operations to have nonbool types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
6e4e7652d8c671d83b6332d0189e93f2920c04ff |
|
18-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the completely broken FP constant folds for setcc's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
068a81e9fca511b9a3b3a0f28a8988a57f994652 |
|
17-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Refactor code into a new method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7636512f59e61429eae8839aa5c472c5e2f24b85 |
|
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
950aa3ca2c60863510bee45ec1b9180f975b8e79 |
|
16-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Eliminate unneeded extensions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8a389bb37603fa99a980475a4f5cdc27fa4014f1 |
|
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print extra type for nodes with extra type info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4ea6924444d73a0b5f6207e05b4229b49a284f06 |
|
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Common code factored out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
859157daee6a4b49e99921832e1dde065167b317 |
|
15-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add new SIGN_EXTEND_INREG, ZERO_EXTEND_INREG, and FP_ROUND_INREG operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
69a52155d2eff066b49dbac385113002fd9dba14 |
|
14-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Adjust to CopyFromReg changes, implement deletion of truncating/extending stores/loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2ee743ff9be43c350075a2fa15d11a79bff36775 |
|
14-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Start implementing truncating stores and extending loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
18c2f13e0f9d0e5d6227cf6d1881e9ee3d1b6109 |
|
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add new ImplicitDef node, rename CopyRegSDNode class to RegSDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
282c5cae89986a5722ef59f6787108bdd668289d |
|
13-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print new node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
2f0ca79a7504a91b16156b199b6f07857f3782c6 |
|
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Do not fold (zero_ext (sign_ext V)) -> (sign_ext V), they are not the same. This fixes llvm-test/SingleSource/Regression/C/casts.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5c884562279927757cbe0ae718ab18af730ddb35 |
|
12-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
New method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4c633e82f6041f452e451904ec0de670e7f143e4 |
|
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print new operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
a8d9cc870593d3e915ac9184dc0daf1783d4f8a4 |
|
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
shift X, 0 -> X git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d75f19fa42e6f6ee8f159aa8964baf8b0bbd2dee |
|
11-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Split out SDNode::getOperationName into its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
68dc3109420f38d639fb2e9fed6f1a29df60795b |
|
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement a couple of more simplifications. This lets us codegen: int test2(int * P, int* Q, int A, int B) { return P+A == P; } into: test2: movl 4(%esp), %eax movl 12(%esp), %eax shll $2, %eax cmpl $0, %eax sete %al movzbl %al, %eax ret instead of: test2: movl 4(%esp), %eax movl 12(%esp), %ecx leal (%eax,%ecx,4), %ecx cmpl %eax, %ecx sete %al movzbl %al, %eax ret ICC is producing worse code: test2: movl 4(%esp), %eax #8.5 movl 12(%esp), %edx #8.5 lea (%edx,%edx), %ecx #9.9 addl %ecx, %ecx #9.9 addl %eax, %ecx #9.9 cmpl %eax, %ecx #9.16 movl $0, %eax #9.16 sete %al #9.16 ret #9.16 as is GCC (looks like our old code): test2: movl 4(%esp), %edx movl 12(%esp), %eax leal (%edx,%eax,4), %ecx cmpl %edx, %ecx sete %al movzbl %al, %eax ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
87ae6ae41cde4548b55bcc19da36dc0ad7e021df |
|
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix incorrect constant folds, fixing Stepanov after the SHR patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
8136d1f8cb8c6d89460ab9750b6d91a157659831 |
|
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Constant fold shifts, turning this loop: .LBB_Z5test0PdS__3: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax movl $16000, %ecx sarl $3, %ecx cmpl %eax, %ecx fstpl 16(%esp) #FP_REG_KILL jg .LBB_Z5test0PdS__3 # no_exit.1 into: .LBB_Z5test0PdS__3: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax cmpl $2000, %eax fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__3 # no_exit.1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5cdcc58d51c792d329202bab97c34aefbc043b15 |
|
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add some folds for == and != comparisons. This allows us to codegen this loop in stepanov: no_exit.i: ; preds = %entry, %no_exit.i, %then.i, %_Z5checkd.exit %i.0.0 = phi int [ 0, %entry ], [ %i.0.0, %no_exit.i ], [ %inc.0, %_Z5checkd.exit ], [ %inc.012, %then.i ] ; <int> [#uses=3] %indvar = phi uint [ %indvar.next, %no_exit.i ], [ 0, %entry ], [ 0, %then.i ], [ 0, %_Z5checkd.exit ] ; <uint> [#uses=3] %result_addr.i.0 = phi double [ %tmp.4.i.i, %no_exit.i ], [ 0.000000e+00, %entry ], [ 0.000000e+00, %then.i ], [ 0.000000e+00, %_Z5checkd.exit ] ; <double> [#uses=1] %first_addr.0.i.2.rec = cast uint %indvar to int ; <int> [#uses=1] %first_addr.0.i.2 = getelementptr [2000 x double]* %data, int 0, uint %indvar ; <double*> [#uses=1] %inc.i.rec = add int %first_addr.0.i.2.rec, 1 ; <int> [#uses=1] %inc.i = getelementptr [2000 x double]* %data, int 0, int %inc.i.rec ; <double*> [#uses=1] %tmp.3.i.i = load double* %first_addr.0.i.2 ; <double> [#uses=1] %tmp.4.i.i = add double %result_addr.i.0, %tmp.3.i.i ; <double> [#uses=2] %tmp.2.i = seteq double* %inc.i, getelementptr ([2000 x double]* %data, int 0, int 2000) ; <bool> [#uses=1] %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1] br bool %tmp.2.i, label %_Z10accumulateIPddET0_T_S2_S1_.exit, label %no_exit.i To this: .LBB_Z4testIPddEvT_S1_T0__1: # no_exit.i fldl data(,%eax,8) fldl 16(%esp) faddp %st(1) fstpl 16(%esp) incl %eax movl %eax, %ecx shll $3, %ecx cmpl $16000, %ecx #FP_REG_KILL jne .LBB_Z4testIPddEvT_S1_T0__1 # no_exit.i instead of this: .LBB_Z4testIPddEvT_S1_T0__1: # no_exit.i fldl data(,%eax,8) fldl 16(%esp) faddp %st(1) fstpl 16(%esp) incl %eax leal data(,%eax,8), %ecx leal data+16000, %edx cmpl %edx, %ecx #FP_REG_KILL jne .LBB_Z4testIPddEvT_S1_T0__1 # no_exit.i git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19425 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd161e964aa02636c00364ae4d46bf4e384df096 |
|
09-Jan-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Fix VC++ compilation error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ea946cdb1b16827a5f19a2593d054953e51b9fb6 |
|
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print the DAG out more like a DAG in nested format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
49d24716a4398fc249d2b5ac993ff97a421f0635 |
|
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Print out nodes sorted by their address to make it easier to find them in a list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
abd21828752667fdff5a0c20d591f66de102b3c3 |
|
09-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add a simple transformation. This allows us to compile one of the inner loops in stepanov to this: .LBB_Z5test0PdS__2: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax cmpl $2000, %eax fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__2 instead of this: .LBB_Z5test0PdS__2: # no_exit.1 fldl data(,%eax,8) fldl 24(%esp) faddp %st(1) fstl 24(%esp) incl %eax movl $data, %ecx movl %ecx, %edx addl $16000, %edx subl %ecx, %edx movl %edx, %ecx sarl $2, %ecx shrl $29, %ecx addl %ecx, %edx sarl $3, %edx cmpl %edx, %eax fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__2 The old instruction selector produced: .LBB_Z5test0PdS__2: # no_exit.1 fldl 24(%esp) faddl data(,%eax,8) fstl 24(%esp) movl %eax, %ecx incl %ecx incl %eax leal data+16000, %edx movl $data, %edi subl %edi, %edx movl %edx, %edi sarl $2, %edi shrl $29, %edi addl %edi, %edx sarl $3, %edx cmpl %edx, %ecx fstpl 16(%esp) #FP_REG_KILL jl .LBB_Z5test0PdS__2 # no_exit.1 Which is even worse! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
ae0aacb8331e1227abea6601e531a10d0e65fdca |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for FP->INT conversions and back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
623f70dd4c5525888aca400c27832282913b539e |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
1ULL << 64 is undefined, don't do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7c68ec6b70c765edec1e850331c30a7b65c6ebda |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a pointer invalidation problem. This fixes Generic/badarg6.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
5351e9b172962a4f51e6d3b12018dd2de34b2f97 |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fold conditional branches on constants away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
4287d5e355c7dafcb8d674a236eabcccb895c892 |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a thinko in the reassociation code, fixing Generic/badlive.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
fd8c39b77331fbb6f994665b45eba1b2cc6ced6d |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Simplify: truncate ({zero|sign}_extend (X)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
0e12e6e0418564d4b2e83138fe2044be29a6f6d5 |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Implement RemoveDeadNodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
c3aae25116e66c177579b0b79182b09340b19753 |
|
07-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Complete rewrite of the SelectionDAG class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
954da37bb492b519f5c31dc360f2a142567e08b4 |
|
04-Jul-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Add #include <iostream> since Value.h does not #include it any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
f70c22b019494723d0e706f93d6542dfaa6e73a5 |
|
17-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
e25738cab63977282f8ebc26012142debfbd1d20 |
|
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
7dc97ff18023935880082d84a0004ac111859357 |
|
15-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Add a bunch of new node types, etc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|
78ec311bd5fcdf44ed64841a0f5df1124b3a9b17 |
|
11-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of SelectionDAG implementation. This is still rough and unfinished git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
|