summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Implemented "FIXME" in ImutAVLTree: isEqual() now also compares the *data* valueTed Kremenek2008-01-172-4/+25
| | | | | | | | | | and not just the key value when comparing trees. To do this we added data_type and data_type_ref to the ImutContainerInfo trait classes. For values stored in the tree that do not have separate key and data components, data_type is simply a typedef of bool, and isDataEqual() always evaluates to true. This allows us to support both ImmutableSet and ImmutableMap using the same underlying logic. llvm-svn: 46130
* add some helper methods.Chris Lattner2008-01-171-3/+14
| | | | llvm-svn: 46128
* Test case for varargs parameter attribute issue I just fixed.Evan Cheng2008-01-171-0/+31
| | | | llvm-svn: 46127
* code cleanups, no functionality change.Chris Lattner2008-01-171-7/+9
| | | | llvm-svn: 46126
* * Introduce a new SelectionDAG::getIntPtrConstant methodChris Lattner2008-01-1713-163/+189
| | | | | | | | | | | | | 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. llvm-svn: 46125
* add testcase that has been sitting in my tree for awhile.Chris Lattner2008-01-171-0/+11
| | | | llvm-svn: 46124
* Update license for current year.Tanya Lattner2008-01-171-1/+1
| | | | llvm-svn: 46120
* Update version to 2.3svnTanya Lattner2008-01-172-1021/+3288
| | | | | | Regenerate configure with 2.60. llvm-svn: 46119
* DAE bug fix. Don't lose parameter attributes on vararg arguments.Evan Cheng2008-01-171-5/+9
| | | | llvm-svn: 46113
* Enable CBEDevang Patel2008-01-171-1/+1
| | | | llvm-svn: 46112
* When a live virtual register is being clobbered by an implicit def, it is ↵Evan Cheng2008-01-172-2/+55
| | | | | | | | | | | spilled and the spill is its kill. However, if the local allocator has determined the register has not been modified (possible when its value was reloaded), it would not issue a restore. In that case, mark the last use of the virtual register as kill. llvm-svn: 46111
* Fix arg promotion to propagate the correct attrs on the calls toChris Lattner2008-01-172-14/+50
| | | | | | | promoted functions. This is important for varargs calls in particular. Thanks to duncan for providing a great testcase. llvm-svn: 46108
* Replace std::vector<bool> with BitVector.Evan Cheng2008-01-171-4/+8
| | | | llvm-svn: 46104
* Fixes a nasty dag combiner bug that causes a bunch of tests to fail at -O0.Evan Cheng2008-01-162-6/+74
| | | | | | | | | | | | | | | | | | | | It's not safe to use the two value CombineTo variant to combine away a dead load. e.g. v1, chain2 = load chain1, loc v2, chain3 = load chain2, loc v3 = add v2, c Now we replace use of v1 with undef, use of chain2 with chain1. ReplaceAllUsesWith() will iterate through uses of the first load and update operands: v1, chain2 = load chain1, loc v2, chain3 = load chain1, loc v3 = add v2, c Now the second load is the same as the first load, SelectionDAG cse will ensure the use of second load is replaced with the first load. v1, chain2 = load chain1, loc v3 = add v1, c Then v1 is replaced with undef and bad things happen. llvm-svn: 46099
* Trampoline support for x86-64. This looks likeDuncan Sands2008-01-162-7/+70
| | | | | | | | | it should work, but I have no machine to test it on. Committed because it will at least cause no harm, and maybe someone can test it for me! llvm-svn: 46098
* Handle attribute(used) global variables that are i8.Chris Lattner2008-01-161-14/+13
| | | | llvm-svn: 46090
* Do not mark EH tables no-dead-strip unless theDale Johannesen2008-01-163-13/+50
| | | | | | associated function is so marked. llvm-svn: 46088
* add testcase for regressionChris Lattner2008-01-161-0/+9
| | | | llvm-svn: 46073
* Fix a ppc long double regression I introduced yesterday due to aChris Lattner2008-01-161-0/+1
| | | | | | simplification. This fixes automotive-basicmath on PPC. llvm-svn: 46072
* merge a few pieces of code that do the store/load to stack Chris Lattner2008-01-161-30/+12
| | | | | | pattern to use EmitStackConvert now. llvm-svn: 46066
* rename ExpandBIT_CONVERT to EmitStackConvert, generalizing Chris Lattner2008-01-161-15/+37
| | | | | | it to allow it to emit different load and store kinds. llvm-svn: 46065
* simplify a bunch of code by using SelectionDAG::CreateStackTemporary Chris Lattner2008-01-161-28/+6
| | | | | | instead of inlining its body. llvm-svn: 46062
* Change legalizeop of FP_ROUND and FP_EXTEND to not fall throughChris Lattner2008-01-161-32/+55
| | | | | | | | | into the ANY_EXTEND/ZERO_EXTEND/SIGN_EXTEND code to simplify it. Unmerge the code for FP_ROUND and FP_EXTEND from each other to make each one simpler. llvm-svn: 46061
* make sure to use a cpu that has sse.Chris Lattner2008-01-161-1/+1
| | | | llvm-svn: 46060
* make it more clear that this predicate only applies to scalar FP types.Chris Lattner2008-01-162-10/+10
| | | | llvm-svn: 46058
* introduce a isTypeInSSEReg predicate, which allows us to simplifyChris Lattner2008-01-162-21/+18
| | | | | | some code. No functionality change. llvm-svn: 46055
* My previous commit had an incomplete message, it should have been:Chris Lattner2008-01-162-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | make the 'fp return in ST(0)' optimization smart enough to look through token factor nodes. THis allows us to compile testcases like CodeGen/X86/fp-stack-retcopy.ll into: _carg: subl $12, %esp call L_foo$stub fstpl (%esp) fldl (%esp) addl $12, %esp ret instead of: _carg: subl $28, %esp call L_foo$stub fstpl 16(%esp) movsd 16(%esp), %xmm0 movsd %xmm0, 8(%esp) fldl 8(%esp) addl $28, %esp ret Still not optimal, but much better and this is a trivial patch. Fixing the rest requires invasive surgery that is is not llvm 2.2 material. llvm-svn: 46054
* make the 'fp return in ST(0)' optimization smart enough to Chris Lattner2008-01-161-1/+1
| | | | | | look through token factor llvm-svn: 46053
* various whitespace cleanups, no functionality change.Chris Lattner2008-01-161-7/+7
| | | | llvm-svn: 46052
* Factor the ReachesChainWithoutSideEffects out of dag combiner into Chris Lattner2008-01-163-28/+40
| | | | | | | a public SDOperand::reachesChainWithoutSideEffects method. No functionality change. llvm-svn: 46050
* Do not strip llvm.used values.Devang Patel2008-01-163-3/+43
| | | | llvm-svn: 46045
* Changed ImmutableMap::find to return an iterator instead of a pointerTed Kremenek2008-01-151-10/+11
| | | | | | to the tree node. llvm-svn: 46034
* - Introduces versioning macro LLVM_LTO_VERSIONDevang Patel2008-01-152-18/+75
| | | | | | | - Communicate symbol visibility - Communicate code generation model llvm-svn: 46033
* Commit a piece that I missed before, patch by Alain FrischChris Lattner2008-01-151-13/+19
| | | | llvm-svn: 46032
* Missed file from previous checkin.Dale Johannesen2008-01-151-0/+1
| | | | llvm-svn: 46030
* Fix and enable EH for x86-64 Darwin. AddsDale Johannesen2008-01-155-13/+33
| | | | | | | | | ShortenEHDataFor64Bits as a not-very-accurate abstraction to cover all the changes in DwarfWriter. Some cosmetic changes to Darwin assembly code for gcc testsuite compatibility. llvm-svn: 46029
* Move some calls to getVRegDef higher in the callgraph, so they don't get ↵Owen Anderson2008-01-152-13/+15
| | | | | | executed as frequently in performance sensitive code. llvm-svn: 46027
* improve compatibility with mingw, patch by Alain FrischChris Lattner2008-01-152-1/+9
| | | | llvm-svn: 46026
* add a test to ensure that argpromote of one argument doesn't Chris Lattner2008-01-151-0/+26
| | | | | | break the byval attr on some other argument. llvm-svn: 46025
* Add description of 'llvm.trap' intrinsic. Also, minor fixes in formatting. Anton Korobeynikov2008-01-151-5/+39
| | | | llvm-svn: 46024
* verify x86 generates ud2 for llvm.trapChris Lattner2008-01-151-0/+9
| | | | llvm-svn: 46023
* Unbreak the build.Evan Cheng2008-01-151-3/+3
| | | | llvm-svn: 46021
* new testcase for llvm.trap.Chris Lattner2008-01-151-0/+9
| | | | llvm-svn: 46020
* If someone wants to implement ppc TRAP, they can go for it :)Chris Lattner2008-01-151-0/+1
| | | | llvm-svn: 46019
* The type of the 'abort' node should be pointer type (becauseChris Lattner2008-01-151-1/+2
| | | | | | | it's a function pointer) not MVT::Other. This fixes builtin_trap lowering on ppc, alpha, ia64 llvm-svn: 46018
* rename SDTRet -> SDTNone.Chris Lattner2008-01-157-13/+11
| | | | | | Move definition of 'trap' sdnode up from x86 instrinfo to targetselectiondag.td. llvm-svn: 46017
* Remove DefInst from LiveVariables::VarInfo. Use the facilities on ↵Owen Anderson2008-01-154-38/+20
| | | | | | MachineRegisterInfo instead. llvm-svn: 46016
* no need to expand ISD::TRAP to X86ISD::TRAP, just match ISD::TRAP.Chris Lattner2008-01-153-17/+6
| | | | llvm-svn: 46015
* Add support for targets that have a legal ISD::TRAP.Chris Lattner2008-01-152-4/+12
| | | | llvm-svn: 46014
* Add files to windows project files. Also include <algorithm> explicitly so ↵Chuck Rose III2008-01-155-4/+41
| | | | | | that vstudio build works llvm-svn: 46013
OpenPOWER on IntegriCloud