summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix main executable path name resolution on FreeBSD, patch by Chris Lattner2009-03-021-1/+60
| | | | | | Ed Schouten! llvm-svn: 65882
* Fix PR3694: add an instcombine micro-optimization that helpsDuncan Sands2009-03-021-5/+17
| | | | | | clean up when using variable length arrays in llvm-gcc. llvm-svn: 65832
* Reorganize llvmc code.Mikhail Glushenkov2009-03-027-1/+789
| | | | | | | | | | Move the code from 'llvmc/driver' into a new CompilerDriver library, and change the build system accordingly. Makes it easier for projects using LLVM to build their own llvmc-based drivers. Tested with objdir != srcdir. llvm-svn: 65821
* Fix a problem with DAGCombine on 64b targets where foldingNate Begeman2009-03-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | extracts + build_vector into a shuffle would fail, because the type of the new build_vector would not be legal. Try harder to create a legal build_vector type. Note: this will be totally irrelevant once vector_shuffle no longer takes a build_vector for shuffle mask. New: _foo: xorps %xmm0, %xmm0 xorps %xmm1, %xmm1 subps %xmm1, %xmm1 mulps %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, 0 Old: _foo: xorps %xmm0, %xmm0 movss %xmm0, %xmm1 xorps %xmm2, %xmm2 unpcklps %xmm1, %xmm2 pshufd $80, %xmm1, %xmm1 unpcklps %xmm1, %xmm2 pslldq $16, %xmm2 pshufd $57, %xmm2, %xmm1 subps %xmm0, %xmm1 mulps %xmm0, %xmm1 addps %xmm0, %xmm1 movaps %xmm1, 0 llvm-svn: 65791
* Another sentinel optimization. This one should alwaysGabor Greif2009-03-011-7/+0
| | | | | | be a win, since almost every interesting function has at least one Argument. llvm-svn: 65778
* Reuse a technique (pioneered for BasicBlocks) of superposing ilist withGabor Greif2009-03-011-7/+0
| | | | | | | | | | | | its sentinel. This is quite a win when a function really has a basic block. When the function is just a declaration (and stays so) the old way did not allocate a sentinel. So this change is most beneficial when the ratio of function definition to declaration is high. I.e. linkers etc. Incidentally these are the most resource demanding applications, so I expect that the reduced malloc traffic, locality and space savings outweigh the cost of addition of two pointers to Function. llvm-svn: 65776
* Temporarily revert r65755. It was causing failures in the self-hostingBill Wendling2009-03-011-5/+3
| | | | | | | | | | | | | | | | | | | | | testsuite: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/nancvt.ll Failed with exit(1) at line 2 while running: grep 2147027116 nancvt.ll.tmp | count 3 count: expected 3 lines and got 0. child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/vec_ins_extract.ll Failed with exit(1) at line 1 while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/CodeGen/X86/vec_ins_extract.ll | opt -scalarrepl -instcombine | llc -march=x86 -mcpu=yonah | not /usr/bin/grep sub.*esp subl $28, %esp subl $28, %esp child process exited abnormally And more. llvm-svn: 65758
* hoist the check for alloca size up so that it controls CanConvertToScalar Chris Lattner2009-03-011-3/+5
| | | | | | as well as isSafeAllocaToScalarRepl. llvm-svn: 65755
* Minor optimization:Evan Cheng2009-03-011-29/+237
| | | | | | | | | | | Look for situations like this: %reg1024<def> = MOV r1 %reg1025<def> = MOV r0 %reg1026<def> = ADD %reg1024, %reg1025 r0 = MOV %reg1026 Commute the ADD to hopefully eliminate an otherwise unavoidable copy. llvm-svn: 65752
* simplify handling "don't print top level name" processing, so that we getChris Lattner2009-03-011-37/+19
| | | | | | stuff like %A = type { %A*} instead of an upref. llvm-svn: 65748
* Combine PPC's GetConstantBuildVectorBits and isConstantSplat functions to a newBob Wilson2009-03-012-106/+96
| | | | | | method in a BuildVectorSDNode "pseudo-class". llvm-svn: 65747
* Fix a pretty awesome bug that only happened in a strange case with anonymousChris Lattner2009-03-011-8/+11
| | | | | | types. This was reading the uint for the keyword after the token was advanced. llvm-svn: 65743
* walk type symbol table also, so we get:Chris Lattner2009-03-011-2/+10
| | | | | | | | | | | | | type opaque ; type %0 %C = type { %0, %0 } instead of: %C = type { opaque, opaque } when appropriate. llvm-svn: 65742
* Fix a long-standing bug and misfeature of the disassembler: when dealing with a Chris Lattner2009-03-011-12/+122
| | | | | | | | | | | | | | stripped .bc file, it didn't make any attempt to try to reuse anonymous types. This causes an amazing type explosion due to types getting duplicated everywhere they are referenced and other problems. This also caused correctness issues, because opaque types are unique for each time they are uttered in the file. This means that stripping a .bc file could produce a .ll file that could not be assembled (e.g. 2009-02-28-StripOpaqueName.ll). This patch fixes both of these issues. llvm-svn: 65738
* move type name population out of TypePrinting class into a static Chris Lattner2009-02-281-36/+51
| | | | | | AsmWriter.cpp method. llvm-svn: 65736
* switch to densemap for pointer->word map.Chris Lattner2009-02-281-9/+9
| | | | llvm-svn: 65735
* delete a bunch of duplicated type printing logic, using the type printingChris Lattner2009-02-281-152/+16
| | | | | | stuff in AsmWriter.cpp for Type::getDescription(). llvm-svn: 65734
* make this work when constructed with a null module*Chris Lattner2009-02-281-2/+1
| | | | llvm-svn: 65733
* expose TypePrinting as a public API.Chris Lattner2009-02-281-23/+24
| | | | llvm-svn: 65729
* rename 'Result' to 'OS' in CalcTypeName for consistencyChris Lattner2009-02-281-37/+37
| | | | llvm-svn: 65724
* do not embed the raw_ostream into TypePrinting, pass it as an argument to ↵Chris Lattner2009-02-281-52/+43
| | | | | | print etc. llvm-svn: 65723
* stop calling Type::getDescription().Chris Lattner2009-02-281-12/+15
| | | | llvm-svn: 65722
* simplificationsChris Lattner2009-02-281-6/+8
| | | | llvm-svn: 65721
* Change WriteTypeSymbolic to not put a space out before types, also, removeChris Lattner2009-02-283-24/+18
| | | | | | the old std::ostream version. llvm-svn: 65720
* make CalcTypeName take a stream instead of a string to concat onto,Chris Lattner2009-02-281-55/+49
| | | | | | eliminate redundant opaque handling code. llvm-svn: 65716
* remove a bunch of nearly-duplicated code.Chris Lattner2009-02-281-63/+18
| | | | llvm-svn: 65715
* fix indentation, remove dead integer case.Chris Lattner2009-02-281-64/+59
| | | | llvm-svn: 65714
* pull calcTypeName into TypePrinting class, make its type stackChris Lattner2009-02-281-12/+16
| | | | | | be a smallvector instead of vector. llvm-svn: 65713
* inline method into its only use and simplify the result.Chris Lattner2009-02-281-11/+4
| | | | llvm-svn: 65712
* simplify conditionChris Lattner2009-02-281-7/+10
| | | | llvm-svn: 65711
* start refactoring the .ll printer: introduce a new TypePrinting classChris Lattner2009-02-281-310/+302
| | | | | | and move all related stuff to it. llvm-svn: 65710
* reject 0 element vectors with:Chris Lattner2009-02-281-0/+2
| | | | | | | | | @a = internal constant void bitcast(<0 x i8> <> to void) ^ Fixes PR3685 llvm-svn: 65698
* Last commit accidentially deleted this code.Evan Cheng2009-02-281-0/+4
| | | | llvm-svn: 65679
* Added another darwin subtargetMon P Wang2009-02-281-0/+4
| | | | llvm-svn: 65662
* It is possible that subprgoram definition is only encoding return value ↵Devang Patel2009-02-271-2/+6
| | | | | | directly, instsad of an DIArray of all argument types. llvm-svn: 65643
* Refactor TLS code and add some tests. The tests and expected results are:Rafael Espindola2009-02-273-14/+69
| | | | | | | | | | | | | | | | | | | | | pic | declaration | linkage | visibility | !pic | declaration | external | default | tls1.ll tls2.ll | local exec pic | declaration | external | default | tls1-pic.ll tls2-pic.ll | general dynamic !pic | !declaration | external | default | tls3.ll tls4.ll | initial exec pic | !declaration | external | default | tls3-pic.ll tls4-pic.ll | general dynamic !pic | declaration | external | hidden | tls7.ll tls8.ll | local exec pic | declaration | external | hidden | X | local dynamic !pic | !declaration | external | hidden | tls9.ll tls10.ll | local exec pic | !declaration | external | hidden | X | local dynamic !pic | declaration | internal | default | tls5.ll tls6.ll | local exec pic | declaration | internal | default | X | local dynamic The ones marked with an X have not been implemented since local dynamic is not implemented. llvm-svn: 65632
* Introduce a new technique for merging BasicBlock with Instruction sentinel ↵Gabor Greif2009-02-271-34/+0
| | | | | | | | | by superposition. This looks dangerous, but isn't because the sentinel is accessed in special way only, namely the Next and Prev fields of it, and these are guaranteed to exist. llvm-svn: 65626
* Silence compiler warning about use of uninitialized variables (in reality theseNick Lewycky2009-02-271-1/+1
| | | | | | are always set by reference on the path that uses them.) No functional change. llvm-svn: 65621
* Fix compiler warning about uninitialized variables. No functional change.Nick Lewycky2009-02-271-1/+1
| | | | llvm-svn: 65620
* Alignment values for i64 and f64 on ppc64 were wrong,Dale Johannesen2009-02-271-1/+3
| | | | | | | | possibly for the reason suggested by the comment. No wonder it didn't work very well. This unblocks bootstrap with assertions on ppc. llvm-svn: 65601
* MachineLICM CSE should match destination register classes; avoid hoisting ↵Evan Cheng2009-02-271-3/+13
| | | | | | implicit_def's. llvm-svn: 65592
* Ignore dbg info intrinsics when folding conditional branch to Zhou Sheng2009-02-261-1/+5
| | | | | | conditional branch predecessors. llvm-svn: 65509
* Enable stack slot coloring DCE. Evan's spiller fixes were needed before ↵Owen Anderson2009-02-261-7/+2
| | | | | | this could happen. llvm-svn: 65501
* ADDS{D|S}rr_Int and MULS{D|S}rr_Int are not commutable. The users of these ↵Evan Cheng2009-02-261-8/+4
| | | | | | intrinsics expect the high bits will not be modified. llvm-svn: 65499
* The last commit was overly conservative. It's ok to reuse value that's ↵Evan Cheng2009-02-261-7/+0
| | | | | | already marked livein. llvm-svn: 65498
* If an available register falls through to a succ block, unset the last kill. ↵Evan Cheng2009-02-261-37/+76
| | | | | | Sorry, it's impossible to reduce a sensible test case. It basically requires the moon and stars to align in order to cause a failure. llvm-svn: 65497
* Revert BuildVectorSDNode related patches: 65426, 65427, and 65296.Evan Cheng2009-02-2511-324/+329
| | | | llvm-svn: 65482
* Fix big-endian codegen bug. We're splitting upDale Johannesen2009-02-251-1/+2
| | | | | | | | | | | overly long ints, e.g. i96, into pieces at PHIs and the nodes that feed into them; however big-endian reverses the order of the pieces (for some reason), and wasn't doing it the same way on both sides, so the pieces didn't match and runtime failures ensued. Fixes 188.ammp and sqlite3 on ppc32. llvm-svn: 65481
* Print variable's display name in dwarf DIE.Devang Patel2009-02-251-1/+1
| | | | llvm-svn: 65468
* Fix PR3667Chris Lattner2009-02-251-1/+1
| | | | llvm-svn: 65464
OpenPOWER on IntegriCloud