summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* use callsite to obtain all argumentsGabor Greif2010-06-241-1/+2
| | | | llvm-svn: 106729
* use callsite to obtain all argumentsGabor Greif2010-06-241-1/+2
| | | | llvm-svn: 106728
* Teach the x86 mc assembler that %dr6 = %db6, this implementsChris Lattner2010-06-242-0/+54
| | | | | | rdar://8013734 llvm-svn: 106725
* more cleanupsChris Lattner2010-06-241-21/+15
| | | | llvm-svn: 106724
* reduce indentationChris Lattner2010-06-241-20/+15
| | | | llvm-svn: 106723
* fix breakage from r98938 by correctly marking msp430 calls as variadic.Chris Lattner2010-06-241-1/+1
| | | | | | Patch by Ben Ransford! llvm-svn: 106722
* Fix a bug in the code which determines when it's safe to use theDan Gohman2010-06-241-7/+13
| | | | | | bt instruction, which was exposed by r106263. llvm-svn: 106718
* Add a couple more quick comments.Eric Christopher2010-06-242-0/+4
| | | | llvm-svn: 106717
* Optimize the "bit test" code path for switch lowering in theDan Gohman2010-06-241-15/+27
| | | | | | case where the bit mask has exactly one bit. llvm-svn: 106716
* Revert "Replace a big gob of old coalescer logic with the new CoalescerPair ↵Jakob Stoklund Olesen2010-06-244-205/+544
| | | | | | | | class." Whiny buildbots. llvm-svn: 106710
* use getNumArgOperandsGabor Greif2010-06-241-1/+1
| | | | llvm-svn: 106709
* use ArgOperand APIGabor Greif2010-06-243-4/+4
| | | | llvm-svn: 106707
* Use ValueMap instead of DenseMap.Devang Patel2010-06-2410-60/+59
| | | | | | The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706
* Add AVX CMP{SS,SD}{rr,rm} instructions and encoding testcasesBruno Cardoso Lopes2010-06-242-30/+61
| | | | llvm-svn: 106705
* Move SSE and AVX shuffle, unpack and compare code to more appropriate placesBruno Cardoso Lopes2010-06-241-166/+185
| | | | llvm-svn: 106702
* Replace a big gob of old coalescer logic with the new CoalescerPair class.Jakob Stoklund Olesen2010-06-244-544/+205
| | | | | | | | CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. llvm-svn: 106701
* Use available typedef for " DenseMap<const Value*, Value*>".Devang Patel2010-06-242-8/+8
| | | | llvm-svn: 106699
* Cosmetic change.Devang Patel2010-06-236-102/+102
| | | | | | Do not use "ValueMap" as a name for a local variable or an argument. llvm-svn: 106698
* use ArgOperand accessorsGabor Greif2010-06-232-13/+13
| | | | llvm-svn: 106697
* We are missing opportunites to use ldm. Take code like this:Bill Wendling2010-06-232-0/+121
| | | | | | | | | | | | | | void t(int *cp0, int *cp1, int *dp, int fmd) { int c0, c1, d0, d1, d2, d3; c0 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000); c1 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000); /* ... */ } It code gens into something pretty bad. But with this change (analogous to the X86 back-end), it will use ldm and generate few instructions. llvm-svn: 106693
* use the new isFreeCall API and ArgOperand accessorsGabor Greif2010-06-231-12/+13
| | | | llvm-svn: 106692
* minor enhancement to llvm::isFreeCall API: return CallInst; no functional changeGabor Greif2010-06-231-8/+8
| | | | llvm-svn: 106686
* use ArgOperand gettersGabor Greif2010-06-231-3/+3
| | | | llvm-svn: 106685
* Add AVX MOVMSK{PS,PD}rr instructionsBruno Cardoso Lopes2010-06-231-6/+19
| | | | llvm-svn: 106683
* Add tests for different AVX cmp opcodes, also teach the x86 asm parser to ↵Bruno Cardoso Lopes2010-06-231-6/+8
| | | | | | understand the vcmp instruction llvm-svn: 106678
* Update according to feedback.Eric Christopher2010-06-232-5/+5
| | | | llvm-svn: 106677
* Add AVX SHUF{PS,PD}{rr,rm} instructionsBruno Cardoso Lopes2010-06-231-26/+30
| | | | llvm-svn: 106672
* Add support for the x86 instructions "pusha" and "popa".Nico Weber2010-06-231-0/+11
| | | | llvm-svn: 106671
* Do not do tail calls to external symbols. If theDale Johannesen2010-06-231-12/+9
| | | | | | | | | | | branch turns out to be ARM-to-Thumb or vice versa the linker cannot resolve this. 8120438. If this optimization is going to be useful we probably need a compiler flag "assume callees are same architecture" or something like that. llvm-svn: 106662
* MorphNodeTo doesn't preserve the memory operands. Because we're morphing a nodeBill Wendling2010-06-231-0/+21
| | | | | | | into the same node, but with different non-memory operands, we need to replace the memory operands after it's finished morphing. llvm-svn: 106643
* Revert r106263, "Fold the ShrinkDemandedOps pass into the regular ↵Daniel Dunbar2010-06-235-54/+113
| | | | | | DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled. llvm-svn: 106634
* The generic DAG combiner can now fold atomic fences when needed, so switchJim Grosbach2010-06-231-57/+6
| | | | | | to using that. llvm-svn: 106633
* When using libcall expansions for the atomic intrinsics, the explicitJim Grosbach2010-06-231-0/+2
| | | | | | | MEMBARRIER fences aren't necessary for ARM. Tell the combiner to fold them away. llvm-svn: 106631
* Some targets don't require the fencing MEMBARRIER instructions surroundingJim Grosbach2010-06-232-0/+56
| | | | | | | | atomic intrinsics, either because the use locking instructions for the atomics, or because they perform the locking directly. Add support in the DAG combiner to fold away the fences. llvm-svn: 106630
* Add a few VNInfo data structure checks.Jakob Stoklund Olesen2010-06-231-2/+5
| | | | llvm-svn: 106627
* use ArgOperand accessorsGabor Greif2010-06-231-13/+13
| | | | llvm-svn: 106626
* use ArgOperand accessorsGabor Greif2010-06-231-5/+6
| | | | llvm-svn: 106623
* use helper to neatly access argumentsGabor Greif2010-06-231-5/+6
| | | | llvm-svn: 106622
* Update uses, defs, and comments for darwin tls patterns.Eric Christopher2010-06-232-13/+9
| | | | llvm-svn: 106621
* Revert r106066, "Create a more targeted fix for not sinking instructions ↵Daniel Dunbar2010-06-232-34/+53
| | | | | | | | | | into a range where it"... it causes bzip2 to be miscompiled by Clang. Conflicts: lib/CodeGen/MachineSink.cpp llvm-svn: 106614
* Get the addend correct for i386 pic.Eric Christopher2010-06-221-1/+7
| | | | | | Thanks Daniel! llvm-svn: 106608
* Replace ScalarEvolution's private copy of getLoopPredecessorDan Gohman2010-06-221-19/+2
| | | | | | with LoopInfo's public copy. llvm-svn: 106603
* Add AVX compare packed instructionsBruno Cardoso Lopes2010-06-222-34/+65
| | | | llvm-svn: 106600
* Revert 106592 for now. It causes clang-selfhost build failure.Devang Patel2010-06-221-34/+13
| | | | llvm-svn: 106598
* Fix OptimizeMax to handle an odd case where one of the max operandsDan Gohman2010-06-221-1/+4
| | | | | | is another max which folds. This fixes PR7454. llvm-svn: 106594
* Reapply support for AVX unpack and interleave instructions, withBruno Cardoso Lopes2010-06-221-44/+42
| | | | | | testcases this time. llvm-svn: 106593
* If a metadata operand is seeded in value map and the metadata should also be ↵Devang Patel2010-06-221-13/+34
| | | | | | | | | | | seeded in value map. This is not limited to function local metadata. Failure to seed metdata in such cases causes troubles when in a cloned module, metadata from a new module refers to values in old module. Usually this results in mysterious bugpoint crashes. For example, Checking to see if we can delete global inits: Unknown constant! UNREACHABLE executed at /d/g/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:904! llvm-svn: 106592
* While cloning a module, clone metadata attached with instructions.Devang Patel2010-06-221-1/+16
| | | | llvm-svn: 106591
* Add AVX MOV{SS,SD}{rr,rm} instructionsBruno Cardoso Lopes2010-06-224-33/+67
| | | | llvm-svn: 106588
* Fix the formatting of the switch statement and add a missing break.Bill Wendling2010-06-221-3/+4
| | | | llvm-svn: 106586
OpenPOWER on IntegriCloud