summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Make SCEVExpander and LSR more aggressive about hoisting expressions outDan Gohman2010-03-032-51/+248
| | | | | | of loops. llvm-svn: 97642
* Fix a bug with base offset merging that Devang noticed.Anders Carlsson2010-03-032-37/+67
| | | | llvm-svn: 97641
* Implement name hiding for names found through virtual base subobjectsDouglas Gregor2010-03-034-5/+154
| | | | | | | | that are hidden by other derived base subobjects reached along a lookup path that does *not* pass through the hiding subobject (C++ [class.member.lookup]p6). Fixes PR6462. llvm-svn: 97640
* Revert r97580; that's not the right way to fix this.Dan Gohman2010-03-032-124/+34
| | | | llvm-svn: 97639
* Add proper target hooks for __builtin_extract_return_address andJohn McCall2010-03-033-4/+36
| | | | | | | __builtin_frob_return_address. The implementations for both are still trivial in the default case. llvm-svn: 97638
* Don't emit derived-to-base destructor aliases if we don't have a definitionJohn McCall2010-03-032-1/+21
| | | | | | | | for the base destructor, because aliases to declarations aren't legal. Fixes PR 6471. llvm-svn: 97637
* Work in progress. Finding some cse now.Evan Cheng2010-03-031-4/+88
| | | | llvm-svn: 97635
* Refactor CXXRecordDecl::lookupInBases() to push the recursion down aDouglas Gregor2010-03-032-28/+41
| | | | | | | level. No functionality change, and it obeys access control this time. llvm-svn: 97634
* 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
* Use SVN_REVISION, not SVN_VERSION.Ted Kremenek2010-03-031-1/+1
| | | | llvm-svn: 97625
* Fix an algorithmic bug in LiveVariables pointed out by Zhongxing.Ted Kremenek2010-03-031-6/+9
| | | | | | | If an initializer in a DeclStmt references the declared variable, that extends the liveness of that variable. llvm-svn: 97624
* Don't turn assertions on by default.Bill Wendling2010-03-031-1/+1
| | | | llvm-svn: 97623
* Revert r97618. Access control sucksDouglas Gregor2010-03-031-18/+9
| | | | llvm-svn: 97621
* Make getClangRevision() check that SVN_VERSION is an empty string Ted Kremenek2010-03-031-8/+8
| | | | | | | | (even if it is defined). This fixes the issue of this function returning '0' when SVN_VERSION is defined to be "". Fixes: <rdar://problem/7663667> llvm-svn: 97620
* Add comments to test case.Zhongxing Xu2010-03-031-0/+2
| | | | llvm-svn: 97619
* Factor out the recursive lookup into C++ base classes into a separate,Douglas Gregor2010-03-031-9/+18
| | | | | | static function. No functionality change. llvm-svn: 97618
* 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
* Initialize your storage, dummyDouglas Gregor2010-03-031-0/+2
| | | | llvm-svn: 97615
* Added 32-bit Thumb instructions t2DMB variants, t2DSB variants, and t2ISBsy forJohnny Chen2010-03-031-0/+60
| | | | | | disassembly only. llvm-svn: 97614
* Don't use echo in the Index test, which I hope will work around an ↵Douglas Gregor2010-03-032-2/+3
| | | | | | intermittent Windows failure llvm-svn: 97613
* 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
* Eliminate the static map of overridden C++ methods, which was going toDouglas Gregor2010-03-023-34/+124
| | | | | | come back to bite us at some point. llvm-svn: 97607
* merge two loops over all nodes in the graph into one.Chris Lattner2010-03-021-57/+41
| | | | llvm-svn: 97606
* Suppress implicit member redeclarations arising from explicit instantiationJohn McCall2010-03-022-0/+17
| | | | | | | | | | | | declarations after the member has been explicitly specialized. We already did this after explicit instantiation definitions; not doing it for declarations meant that subsequent definitions would see a previous member declaration with specialization kind "explicit instantiation decl", which would then happily get overridden. Fixes PR 6458. llvm-svn: 97605
* eliminate PreprocessForRMW now that isel handles it.Chris Lattner2010-03-021-136/+27
| | | | | | We still preprocess calls and fp return stuff. llvm-svn: 97598
* remove 300 lines of code that is now dead in the MSP430 backendChris Lattner2010-03-022-295/+3
| | | | | | | now that isel handles chains more aggressively. This also allows us to make isLegalToFold non-virtual. llvm-svn: 97597
* Fix some issues in WalkChainUsers dealing with Chris Lattner2010-03-027-64/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | CopyToReg/CopyFromReg/INLINEASM. These are annoying because they have the same opcode before an after isel. Fix this by setting their NodeID to -1 to indicate that they are selected, just like what automatically happens when selecting things that end up being machine nodes. With that done, give IsLegalToFold a new flag that causes it to ignore chains. This lets the HandleMergeInputChains routine be the one place that validates chains after a match is successful, enabling the new hotness in chain processing. This smarter chain processing eliminates the need for "PreprocessRMW" in the X86 and MSP430 backends and enables MSP to start matching it's multiple mem operand instructions more aggressively. I currently #if out the dead code in the X86 backend and MSP backend, I'll remove it for real in a follow-on patch. The testcase changes are: test/CodeGen/X86/sse3.ll: we generate better code test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was miscompiling this before, we now generate correct code Convert it to filecheck while I'm at it. test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem folding to make anton happy. :) llvm-svn: 97596
* Added 32-bit Thumb instruction CLREX (Clear-Exclusive) for disassembly only.Johnny Chen2010-03-021-0/+10
| | | | llvm-svn: 97595
* Allow specialization of ScopedHashTable of non-default DenseMapInfo.Evan Cheng2010-03-021-28/+33
| | | | llvm-svn: 97594
* Okay. One last attempt:Bill Wendling2010-03-021-3/+3
| | | | | | Place the LSDA into the TEXT section on Mach-O. This saves space. llvm-svn: 97592
* [CFG]Ted Kremenek2010-03-023-38/+52
| | | | | | | | | | | | | | | | | | | After discussion with Zhongxing, don't force the initializer of DeclStmts to be block-level expressions. This led to some interesting fallout: [UninitializedValues] Always visit the initializer of DeclStmts (do not assume they are block-level expressions). [BasicStore] With initializers of DeclStmts no longer block-level expressions, this causes self-referencing initializers (e.g. 'int x = x') to no longer cause the initialized variable to be live before the DeclStmt. While this is correct, it caused BasicStore::RemoveDeadBindings() to prune off the values of these variables from the initial store (where they are set to uninitialized). The fix is to back-port some (and only some) of the lazy-binding logic from RegionStore to BasicStore. Now the default values of local variables are determined lazily as opposed to explicitly initialized. llvm-svn: 97591
* Don't conjure a symbol for DeclStmts when the variable is a C++ reference.Ted Kremenek2010-03-021-5/+5
| | | | llvm-svn: 97590
* During codegen assert that any copy assignment, destructor or constructor thatRafael Espindola2010-03-025-52/+102
| | | | | | | | we need to synthesize has been marked as used by Sema. Change Sema to avoid these asserts. llvm-svn: 97589
* this testcase is failing because pic16 doesn't define a reg/reg Chris Lattner2010-03-021-1/+3
| | | | | | xor pattern. I have no plans to fix this XFAIL. llvm-svn: 97587
* Add support for use to ocaml.Erick Tryzelaar2010-03-024-0/+132
| | | | llvm-svn: 97586
* Rename LLVMUseIteratorRef to LLVMUseRef since we don't refer to iterators in ↵Erick Tryzelaar2010-03-022-17/+17
| | | | | | llvm-c. llvm-svn: 97585
* xfail this for now.Chris Lattner2010-03-021-0/+1
| | | | llvm-svn: 97584
* Removed the extra S from the multiclass def T2I_adde_sube_s_irs as well as fromJohnny Chen2010-03-021-14/+14
| | | | | | | the opc string passed in, since it's a given from the class inheritance of T2sI. The fixed the extra 's' in adcss & sbcss when disassembly printing. llvm-svn: 97582
OpenPOWER on IntegriCloud