summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Make sure JITResolvers don't leave any stubs behind. When a JITResolver wasJeffrey Yasskin2010-03-041-59/+105
| | | | | | | destroyed, it could leave stubs in the StubToResolverMap, which would confuse the lookup for subsequent lazy compilations. llvm-svn: 97698
* enhance comment output to specify what recorded slotChris Lattner2010-03-043-5/+12
| | | | | | numbers a ComplexPat will match into. llvm-svn: 97696
* Fix more code to work properly with vector operands. Based onDan Gohman2010-03-041-5/+5
| | | | | | a patch my Micah Villmow for PR6465. llvm-svn: 97692
* Teach the pic16 target to recognize pic16-*-* triples.John McCall2010-03-041-1/+2
| | | | llvm-svn: 97691
* inline CannotYetSelectIntrinsic into CannotYetSelect and simplify.Chris Lattner2010-03-042-20/+16
| | | | llvm-svn: 97690
* Fix a logic error. An instruction that has a live physical register def ↵Evan Cheng2010-03-031-2/+5
| | | | | | cannot be CSE'ed, but it *can* be used to replace a common subexpression. llvm-svn: 97688
* Remove PHINodeTraits and use MachineInstrExpressionTrait instead.Evan Cheng2010-03-032-39/+2
| | | | llvm-svn: 97687
* Expose the rest of the llvm-c scalar opts to ocaml.Erick Tryzelaar2010-03-034-23/+246
| | | | llvm-svn: 97685
* Rename some ocaml functions.Erick Tryzelaar2010-03-033-13/+13
| | | | llvm-svn: 97684
* Expose the external functions for ocaml's execution engine as an optimization.Erick Tryzelaar2010-03-031-29/+36
| | | | llvm-svn: 97683
* Expose alignment and stack alignment attributes to llvm-c and ocaml.Erick Tryzelaar2010-03-033-1/+7
| | | | llvm-svn: 97682
* Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip ↵Evan Cheng2010-03-032-42/+46
| | | | | | over only virtual register defs. This matches what isEqual() is doing. llvm-svn: 97680
* Re-apply r97667 but with a little bit of thought put into the patch. This ↵Evan Cheng2010-03-032-65/+68
| | | | | | implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization. llvm-svn: 97678
* Modified the asm string of 16-bit Thumb MUL instruction so that it prints:Johnny Chen2010-03-031-1/+1
| | | | | | | | MULS <Rdm>, <Rn>, <Rdm> according to A8.6.105 MUL Encoding T1. llvm-svn: 97675
* Revert 97667. It broke a bunch of tests.Dan Gohman2010-03-032-62/+63
| | | | llvm-svn: 97673
* Fix funky indentation and add comments.Evan Cheng2010-03-031-17/+24
| | | | llvm-svn: 97670
* Move DenseMapInfo for MachineInstr* to MachineInstr.hEvan Cheng2010-03-032-63/+62
| | | | llvm-svn: 97667
* Fix a bug in SelectionDAG's ReplaceAllUsesWith in the case whereDan Gohman2010-03-031-4/+45
| | | | | | | | | | 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. llvm-svn: 97665
* Machine CSE work in progress. It's doing some CSE now. But implicit def of ↵Evan Cheng2010-03-031-24/+61
| | | | | | physical registers are getting in the way. llvm-svn: 97664
* Add MachineRegisterInfo::hasOneUse and hasOneNonDBGUse.Evan Cheng2010-03-033-6/+24
| | | | llvm-svn: 97663
* don't use always_inline with gcc 3.4, it has some unimplemented featuresChris Lattner2010-03-031-1/+3
| | | | | | | and is too old to really care about the performance of the generated compiler. llvm-svn: 97662
* TopLevelMap[] reference is a pointer.Evan Cheng2010-03-031-1/+1
| | | | llvm-svn: 97661
* Fix PR6444, note still doesn't compile libgcc2 all the way, but fixes that ↵Andrew Lenharth2010-03-031-1/+2
| | | | | | error. May not fix it in an ABI complient way. It wasn't clear what gcc does llvm-svn: 97660
* fix incorrect folding of icmp with undef, PR6481.Chris Lattner2010-03-033-6/+15
| | | | llvm-svn: 97659
* Revert...Bill Wendling2010-03-031-3/+3
| | | | | | | --- Reverse-merging r97592 into '.': U lib/CodeGen/TargetLoweringObjectFileImpl.cpp llvm-svn: 97657
* Added 32-bit Thumb instructions LDRT, LDRBT, LDRHT,,LDRSBT, LDRSHT, STRT, STRBT,Johnny Chen2010-03-031-0/+41
| | | | | | and STRHT for disassembly only. llvm-svn: 97655
* add some of the more obscure predicate types to the Chris Lattner2010-03-031-56/+99
| | | | | | Scope accelerator. llvm-svn: 97652
* speed up scope node processing: if the first element of a scopeChris Lattner2010-03-032-42/+148
| | | | | | | | | | | | | entry we're about to process is obviously going to fail, don't bother pushing a scope only to have it immediately be popped. This avoids a lot of scope stack traffic in common cases. Unfortunately, this requires duplicating some of the predicate dispatch. To avoid duplicating the actual logic I pulled each predicate out to its own static function which gets used in both places. llvm-svn: 97651
* introduce a new SwitchTypeMatcher node (which is analogous toChris Lattner2010-03-036-24/+146
| | | | | | | | SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. llvm-svn: 97645
* Fix comment.Bill Wendling2010-03-031-1/+1
| | | | llvm-svn: 97644
* Make SCEVExpander and LSR more aggressive about hoisting expressions outDan Gohman2010-03-032-51/+248
| | | | | | of loops. llvm-svn: 97642
* Revert r97580; that's not the right way to fix this.Dan Gohman2010-03-032-124/+34
| | | | llvm-svn: 97639
* Work in progress. Finding some cse now.Evan Cheng2010-03-031-4/+88
| | | | llvm-svn: 97635
* remove nvload and two patterns that use it which are Chris Lattner2010-03-031-23/+0
| | | | | | better done by dag combine. llvm-svn: 97633
* Added 32-bit Thumb instructions t2NOP, t2YIELD, t2WFE, t2WFI, t2SEV, and t2DBGJohnny Chen2010-03-031-0/+28
| | | | | | for disassembly only. llvm-svn: 97632
* Use APInt instead of zext value.Bill Wendling2010-03-031-1/+1
| | | | llvm-svn: 97631
* factor the 'in the default address space' check out to a singleChris Lattner2010-03-031-51/+30
| | | | | | | 'dsload' pattern. tblgen doesn't check patterns to see if they're textually identical. This allows better factoring. llvm-svn: 97630
* factor the 'sign extended from 8 bit' patterns better so Chris Lattner2010-03-033-20/+11
| | | | | | | | that they are not destination type specific. This allows tblgen to factor them and the type check is redundant with what the isel does anyway. llvm-svn: 97629
* - Change MachineInstr::isIdenticalTo to take a new option that determines ↵Evan Cheng2010-03-037-63/+54
| | | | | | | | whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality. - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools). llvm-svn: 97628
* Add an option to enable machine cse (it's not doing anything yet.Evan Cheng2010-03-031-0/+5
| | | | llvm-svn: 97627
* Ordering forward declarations.Evan Cheng2010-03-031-3/+3
| | | | llvm-svn: 97626
* Don't turn assertions on by default.Bill Wendling2010-03-031-1/+1
| | | | llvm-svn: 97623
* Eliminate unused instruction classes.Evan Cheng2010-03-031-13/+0
| | | | llvm-svn: 97617
* This test case:Bill Wendling2010-03-034-19/+35
| | | | | | | | | | | | | | | | | | | | | long test(long x) { return (x & 123124) | 3; } Currently compiles to: _test: orl $3, %edi movq %rdi, %rax andq $123127, %rax ret This is because instruction and DAG combiners canonicalize (or (and x, C), D) -> (and (or, D), (C | D)) However, this is only profitable if (C & D) != 0. It gets in the way of the 3-addressification because the input bits are known to be zero. llvm-svn: 97616
* Added 32-bit Thumb instructions t2DMB variants, t2DSB variants, and t2ISBsy forJohnny Chen2010-03-031-0/+60
| | | | | | disassembly only. llvm-svn: 97614
* Use the ocaml tag 0 since we are just returning an option value.Erick Tryzelaar2010-03-021-1/+1
| | | | llvm-svn: 97612
* Don't use an ocaml keyword in an ocamldoc comment.Erick Tryzelaar2010-03-021-7/+8
| | | | llvm-svn: 97611
* Expose the optimization level for the jit in ocaml.Erick Tryzelaar2010-03-023-31/+10
| | | | llvm-svn: 97610
* Remove module providers from ocaml.Erick Tryzelaar2010-03-0213-140/+87
| | | | llvm-svn: 97609
* Add Module functions in place of module providers.Erick Tryzelaar2010-03-026-39/+139
| | | | llvm-svn: 97608
OpenPOWER on IntegriCloud