summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* add checking intentionally elided for vfcmp/vicmp since they should reallyChris Lattner2009-01-051-0/+4
| | | | | | | | | just be removed. However, this fixes PR3281:crash04.ll, diagnosing it with: lvm-as: crash04.ll:2:13: vfcmp requires vector floating point operands vfcmp uno double* undef, undef ^ llvm-svn: 61680
* diagnose PR3281:crash02.ll with:Chris Lattner2009-01-051-0/+3
| | | | | | | | llvm-as: crash02.ll:1:62: invalid function return type declare { <{ <{}>, void ([1898 x { void ()* }], opaque, ...) (), fp128 * }>, opaque } @t () ^ llvm-svn: 61679
* reject PR3281:crash01.ll with:Chris Lattner2009-01-051-1/+2
| | | | | | | | llvm-as: crash01.ll:1:9: invalid function return type declare opaque @t() ^ llvm-svn: 61678
* tighten up return type checkChris Lattner2009-01-051-4/+2
| | | | llvm-svn: 61677
* fix PR3281:accepted0[02].ll: represent empty arrays distinctly, andChris Lattner2009-01-051-1/+7
| | | | | | | | | | | | | | diagnose attempts to initialize non-empty arrays with them. This produces: llvm-as: accepted02.ll:1:28: invalid empty array initializer @"o" = global [5 x double] [] ^ llvm-as: accepted00.ll:1:32: invalid empty array initializer @"za" = thread_local global {} [] ^ [ llvm-svn: 61676
* PR3281:crash00.ll: produce this diagnostic instead of crashing:Chris Lattner2009-01-051-1/+5
| | | | | | | @t = global i8 0, align 3 ^ llvm-svn: 61675
* Handle weak_extern in the JIT. This fixesDan Gohman2009-01-054-13/+28
| | | | | | | | SingleSource/UnitTests/2007-04-25-weak.c in JIT mode. The test now passes on systems which are able to produce a correct reference output to compare with. llvm-svn: 61674
* CellSPU:Scott Michel2009-01-051-1/+111
| | | | | | | - Teach SPU64InstrInfo.td about the remaining signed comparisons, update tests accordingly. llvm-svn: 61672
* CellSPU:Scott Michel2009-01-053-35/+82
| | | | | | | | | | - Fix (brcond (setq ...)) bug, where BRNZ should have been used vice BRZ. - Kill unused/unnecessary nodes in SPUNodes.td - Beef out the i64operations.c test harness to use a lot of unaligned loads, test loops and LLVM loop/basic block optimizations; run the test harness successfully on real Cell hardware. llvm-svn: 61664
* Move the libcall annotating part from doFinalization to doInitialization.Nick Lewycky2009-01-051-18/+77
| | | | | | | | | | | | | Finalization occurs after all the FunctionPasses in the group have run, which is clearly not what we want. This also means that we have to make sure that we apply the right param attributes when creating a new function. Also, add a missed optimization: strdup and strndup. NoCapture and NoAlias return! llvm-svn: 61658
* Add a mechanism to specify attributes in getOrInsertFunction.Nick Lewycky2009-01-041-2/+29
| | | | llvm-svn: 61645
* Refactor some parser interfaces to fix PR3278 and a FIXME:Chris Lattner2009-01-043-23/+25
| | | | | | | ParseAssemblyString with a specified module would not parse into the module, it would create and return a new one. llvm-svn: 61635
* Run a post-pass that marks known function declarations by name.Nick Lewycky2009-01-041-0/+443
| | | | llvm-svn: 61632
* elf writer really wants the size of the global, not the size Chris Lattner2009-01-041-3/+3
| | | | | | of the pointer to the global. llvm-svn: 61630
* Revert this transform. It was causing some dramatic slowdowns in a few ↵Bill Wendling2009-01-041-31/+0
| | | | | | tests. See PR3266. llvm-svn: 61623
* The llvm::ELFWriter::EmitGlobal() method is calling theBill Wendling2009-01-041-0/+1
| | | | | | | | | | llvm::PATypeHolder::get() method when LLVM is self-hosted in Release mode. Before the parser changed, there was a definition of llvm::PAHolder::get() in llvmAsmParser.y. This was probably a bug that no-one noticed. Explicitly #include the Type.h file as a temporary fix for now. llvm-svn: 61620
* Fix a DAGCombiner abort on an invalid shift count constant. This fixes PR3250.Dan Gohman2009-01-031-0/+2
| | | | llvm-svn: 61613
* CommuteNodesToReducePressure() is now removed.Dan Gohman2009-01-031-1/+0
| | | | llvm-svn: 61612
* Remove the code from the scheduler that commuted two-addressDan Gohman2009-01-032-71/+0
| | | | | | | | | | | | | | instructions to avoid copies, because TwoAddressInstructionPass also does this optimization. The scheduler's version didn't account for live-out values, which resulted in spurious commutes and missed opportunities. Now, TwoAddressInstructionPass handles all the opportunities, instead of just those that the scheduler missed. The result is usually the same, though there are occasional trivial differences resulting from the avoidance of spurious commutes. llvm-svn: 61611
* Any void readonly functions are provably dead, don't waste time adding Nick Lewycky2009-01-031-14/+0
| | | | | | nocapture attributes to them. llvm-svn: 61610
* Add Intel processors core i7 and atom.Evan Cheng2009-01-032-1/+4
| | | | llvm-svn: 61603
* Fix PR3210: Detect more Intel processors. Patch by Torok Edwin.Evan Cheng2009-01-031-2/+15
| | | | llvm-svn: 61602
* We know it's always a SCEVConstant if it gets here, so just cast it andNick Lewycky2009-01-031-6/+2
| | | | | | inline the only use of isNegative. Fixes warning reported by Mike Stump. llvm-svn: 61600
* CellSPU:Scott Michel2009-01-033-109/+122
| | | | | | | | | - Remove custom lowering for BRCOND - Add remaining functionality for branches in SPUInstrInfo, such as branch condition reversal and load/store folding. Updated BrCond test to reflect branch reversal. llvm-svn: 61597
* Alphabetized #includes.Misha Brukman2009-01-022-4/+3
| | | | llvm-svn: 61595
* Down with trailing whitespace!Misha Brukman2009-01-025-67/+66
| | | | llvm-svn: 61594
* - Make copyRegToReg use the "LR" assembler synonym for "OR". Makes findingScott Michel2009-01-021-38/+50
| | | | | | | register copies a little easier to pick out from the output. - Fix bug 3192. llvm-svn: 61591
* Don't try to analyze this "backward" case. This is overly conservative Nick Lewycky2009-01-021-0/+12
| | | | | | pending a correct solution. llvm-svn: 61589
* Remove comma at end of enumerator list.Daniel Dunbar2009-01-021-1/+1
| | | | llvm-svn: 61585
* Remove bison specific Makefile bits for AsmParser.Daniel Dunbar2009-01-021-12/+0
| | | | llvm-svn: 61584
* Load tracking means that the value analyzed mayDuncan Sands2009-01-021-2/+8
| | | | | | | | | | | | not have pointer type. In particular, it may be the condition argument for a select or a GEP index. While I was unable to construct a testcase for which some bits of the original pointer are captured due to one of these, it's very very close to being possible - so play safe and exclude these possibilities. llvm-svn: 61580
* When calculating 'nocapture' argument attributes, allowDuncan Sands2009-01-021-21/+60
| | | | | | | | | | | | the argument to be stored to an alloca by tracking uses of the alloca. This occurs 4 times (out of 7121, 0.05%) in MultiSource/Applications, so may not be worth it. On the other hand, it is easy to do and fairly cheap. The functions it helps are: W_addcom and W_addlit in spiff; process_args (argv) in d (make_dparser); ercPixConcealIMB in JM/ldecod. llvm-svn: 61570
* Improve comments and reorganize a bit - no functionalityDuncan Sands2009-01-021-56/+44
| | | | | | change. llvm-svn: 61569
* Fix a really horrible typo, which caused undefined behavior.Chris Lattner2009-01-021-1/+1
| | | | llvm-svn: 61566
* minor cleanups and comment improvements.Chris Lattner2009-01-022-196/+149
| | | | llvm-svn: 61564
* add a #include to hopefully get the x86-64-linux buildbot building.Chris Lattner2009-01-021-0/+1
| | | | llvm-svn: 61563
* update the cmakefile. This is a "best guess", I haven't tested this.Chris Lattner2009-01-021-28/+2
| | | | llvm-svn: 61561
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-0212-15734/+3906
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and clean recursive descent parser. This change has a couple of ramifications: 1. The parser code is about 400 lines shorter (in what we maintain, not including what is autogenerated). 2. The code should be significantly faster than the old code because we don't have to work around bison's poor handling of datatypes with ctors/dtors. This also makes the code much more resistant to memory leaks. 3. We now get caret diagnostics from the .ll parser, woo. 4. The actual diagnostics emited from the parser are completely different so a bunch of testcases had to be updated. 5. I now disallow "%ty = type opaque %ty = type i32". There was no good reason to support this, it was just an accident of the old implementation. I have no reason to think that anyone is actually using this. 6. The syntax for sticking a global variable has changed to make it unambiguous. I don't think anyone is depending on this since only clang supports this and it is not solid yet, so I'm not worried about anything breaking. 7. This gets rid of the last use of bison, and along with it the .cvs files. I'll prune this from the makefiles as a subsequent commit. There are a few minor cleanups that can be done after this commit (suggestions welcome!) but this passes dejagnu testing and is ready for its time in the limelight. llvm-svn: 61558
* Do not isel load folding bt instructions for pentium m, core, core2, and AMD ↵Evan Cheng2009-01-024-29/+51
| | | | | | processors. These are significantly slower than a load followed by a bt of a register. llvm-svn: 61557
* Fix x86 CPU id detection to identify Penryn (and future processors).Evan Cheng2009-01-021-2/+11
| | | | llvm-svn: 61556
* Use movaps / movd to extract vector element 0 even with sse4.1. It's still ↵Evan Cheng2009-01-021-0/+8
| | | | | | cheaper than pextrw especially if the value is in memory. llvm-svn: 61555
* Make adding nocapture a bit stronger. FreeInst is nocapture. Also, Nick Lewycky2009-01-021-3/+27
| | | | | | | | | | functions that don't write can't leak a pointer except through the return value, so a void readonly function is implicitly nocapture. Test these, and add a test that verifies that f1 calling f2 with an otherwise dead pointer gets both of them marked nocapture. llvm-svn: 61552
* Mention that this pass does escape analysis in theDuncan Sands2009-01-011-3/+5
| | | | | | leading comments. llvm-svn: 61548
* Factorize (and generalize) the code promoting SELECTDuncan Sands2009-01-013-152/+105
| | | | | | | and BRCOND conditions. Reorder a few methods while there. llvm-svn: 61547
* Remove trailing spaces.Duncan Sands2009-01-012-33/+33
| | | | llvm-svn: 61545
* Fix PR3274: when promoting the condition of a BRCOND node,Duncan Sands2009-01-0119-117/+144
| | | | | | | | | | promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
* Fix comment.Bill Wendling2009-01-011-1/+1
| | | | llvm-svn: 61538
* Add transformation:Bill Wendling2009-01-011-1/+32
| | | | | | | | xor (or (icmp, icmp), true) -> and(icmp, icmp) This is possible because of De Morgan's law. llvm-svn: 61537
* Look through phi nodes and select instructions whenDuncan Sands2008-12-311-3/+8
| | | | | | calculating nocapture attributes. llvm-svn: 61535
* Don't analyze arguments already marked 'nocapture'.Duncan Sands2008-12-312-1/+9
| | | | llvm-svn: 61532
OpenPOWER on IntegriCloud