summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Minor improvement to FCOPYSIGN to use BIT_CONVERT in cases where the Eli Friedman2009-05-241-10/+24
| | | | | | corresponding integer type is legal. llvm-svn: 72373
* Move Rewriter.clear() earlier, to avoid triggerring the AssertingVH byTorok Edwin2009-05-241-2/+8
| | | | | | | one of the RecursivelyDeleteTriviallyDeadInstructions. Add a comment explaining why the cache needs to be cleared. llvm-svn: 72372
* Instead of clearing the rewriter, don't attempt to rewrite dead phi nodes.Torok Edwin2009-05-242-3/+4
| | | | | | Also fix 80 column violation. llvm-svn: 72371
* Make sure an invalid concatentaion doesn't insert whitespace before Eli Friedman2009-05-242-1/+10
| | | | | | the RHS. Fixes assembler-with-cpp issue reported on cfe-dev. llvm-svn: 72370
* When rewriting the loop exit test with the canonical induction variable,Dan Gohman2009-05-242-1/+42
| | | | | | | leave the original comparison in place if it has other uses, since the other uses won't be dominated by the new comparison instruction. llvm-svn: 72369
* Fix this code for hosts where std::vector doesn't have .data().Dan Gohman2009-05-241-1/+1
| | | | | | Use &Ops[0] instead, which is safe since Ops will never be empty here. llvm-svn: 72368
* When replacing a floating-point comparison with an integerDan Gohman2009-05-241-0/+1
| | | | | | comparison, use takeName to give the integer comparison a name. llvm-svn: 72367
* Generalize SCEVExpander::visitAddRecExpr's GEP persuit, and avoidDan Gohman2009-05-244-54/+221
| | | | | | | | | | | | | | | sending SCEVUnknowns to expandAddToGEP. This avoids the need for expandAddToGEP to bend the rules and peek into SCEVUnknown expressions. Factor out the code for testing whether a SCEV can be factored by a constant for use in a GEP index. This allows it to handle SCEVAddRecExprs, by recursing. As a result, SCEVExpander can now put more things in GEP indices, so it emits fewer explicit mul instructions. llvm-svn: 72366
* When the low bits of one operand of an add are zero, that numberDan Gohman2009-05-241-10/+31
| | | | | | of low bits of the other operand are preserved in the output. llvm-svn: 72365
* The rewriter may hold references to instructions that are deleted because ↵Torok Edwin2009-05-244-2/+45
| | | | | | | | | | | they are trivially dead. Fix by clearing the rewriter cache before deleting the trivially dead instructions. Also make InsertedExpressions use an AssertingVH to catch these bugs easier. llvm-svn: 72364
* Rewrite ISD::FCOPYSIGN lowering to never use i64. Not really ideal, but Eli Friedman2009-05-241-30/+21
| | | | | | it's late, and I don't have any better ideas at the moment. Fixes PR4257. llvm-svn: 72363
* Make bugpoint emit a bugpoint-reduced-blocks.bc, because bugpoint itselfTorok Edwin2009-05-241-0/+3
| | | | | | | can crash during instruction simplification (for example if it creates a broken module). llvm-svn: 72362
* Add -disable-global-remove option to bugpoint.Torok Edwin2009-05-241-1/+6
| | | | | | | | | Sometimes when bugpointing a crash the bugpoint-reduced-simplified.bc reproduces a totally different bug than the original one ("GV doesn't have initializer"). Although its useful to report that bug too, I need a way to reduce the original bug, hence I introduced -disable-global-remove. llvm-svn: 72361
* Update for CMakeLists; untested, so tell me if there are issues.Eli Friedman2009-05-241-0/+1
| | | | llvm-svn: 72360
* Remove checks of getTypeAction from LegalizeOp; we already assert that Eli Friedman2009-05-241-503/+105
| | | | | | | all results and all operands are legal, so this change shouldn't affect behavior at all. llvm-svn: 72359
* Disable type legalization in LegalizeDAG.Eli Friedman2009-05-241-94/+39
| | | | | | | This leaves around 4000 lines of dead code; I'll clean that up in subsequent commits. llvm-svn: 72358
* Remove border around table used for layout.Nick Lewycky2009-05-241-11/+11
| | | | llvm-svn: 72357
* Make the PPC backend use a legal type for the operands to the BUILD_VECTOREli Friedman2009-05-241-5/+3
| | | | | | nodes it generates. llvm-svn: 72356
* Another tweak to the clang Getting Started page.Daniel Dunbar2009-05-241-1/+1
| | | | llvm-svn: 72355
* Minor updates to the clang Getting Started page.Daniel Dunbar2009-05-241-8/+8
| | | | llvm-svn: 72354
* Propagate volatile for implicit property refernces.Mike Stump2009-05-231-3/+2
| | | | llvm-svn: 72353
* Propagate volatile around for property references.Mike Stump2009-05-231-3/+2
| | | | llvm-svn: 72352
* Fix a bug in the expansion of EXTRACT_SUBVECTOR in Eli Friedman2009-05-231-1/+2
| | | | | | ExpandExtractFromVectorThroughStack. llvm-svn: 72351
* Make the X86 backend mark EXTRACT_SUBVECTOR as Expand, at least for the Eli Friedman2009-05-231-0/+1
| | | | | | moment. llvm-svn: 72350
* Add a proper implementation of EXTRACT_SUBVECTOR legalization that Eli Friedman2009-05-231-19/+42
| | | | | | | | doesn't split legal vector operands. This is necessary because the type legalization (and therefore, vector splitting) code will be going away soon. llvm-svn: 72349
* Track volatile aggregate copies better. I'm hoping someone else will decideMike Stump2009-05-232-4/+11
| | | | | | how to get the backend to know that the operation is volatile. llvm-svn: 72348
* Fix thinko, and implement aggregate volatile reads.Mike Stump2009-05-231-4/+9
| | | | llvm-svn: 72347
* More volatile fixes. Can't testcase these yet as ultimately volatileMike Stump2009-05-232-3/+3
| | | | | | is still ignored. llvm-svn: 72344
* Use latin symbols. I was told not everybody has a UTF-8 capable editor.Torok Edwin2009-05-231-1/+1
| | | | llvm-svn: 72343
* Collapse a few FIXMEs together and refactor to make fixing the code easier.Mike Stump2009-05-231-46/+31
| | | | llvm-svn: 72342
* Add support for volatile RValues.Mike Stump2009-05-231-3/+8
| | | | llvm-svn: 72341
* Write family name last, as other entries in this file.Torok Edwin2009-05-231-1/+1
| | | | llvm-svn: 72340
* Add myself.Torok Edwin2009-05-231-0/+4
| | | | llvm-svn: 72339
* Add ARMv7 architecture, Cortex processors and different FPU modes handling.Anton Korobeynikov2009-05-233-13/+28
| | | | llvm-svn: 72337
* Emit ARM Build AttributesAnton Korobeynikov2009-05-232-0/+91
| | | | llvm-svn: 72336
* Propagate CPU string out of SubtargetFeaturesAnton Korobeynikov2009-05-2314-24/+50
| | | | llvm-svn: 72335
* Fix use after free, found by Benjamin Kramer.Daniel Dunbar2009-05-231-3/+3
| | | | llvm-svn: 72333
* Work around a page size issue on Cygwin.Jay Foad2009-05-231-1/+6
| | | | llvm-svn: 72332
* Fix PR4254.Torok Edwin2009-05-232-2/+16
| | | | | | | | | | | The DAGCombiner created a negative shiftamount, stored in an unsigned variable. Later the optimizer eliminated the shift entirely as being undefined. Example: (srl (shl X, 56) 48). ShiftAmt is 4294967288. Fix it by checking that the shiftamount is positive, and storing in a signed variable. llvm-svn: 72331
* Test for David Chisnall's -fobjc-sender-dependent-dispatch patch.Fariborz Jahanian2009-05-231-1/+7
| | | | llvm-svn: 72330
* stat64/open64/lseek64 for the interpreterTorok Edwin2009-05-231-1/+4
| | | | llvm-svn: 72329
* available_externall linkage is not local, this was confusing the codegenerator,Torok Edwin2009-05-236-7/+28
| | | | | | | | | and it wasn't generating calls through @PLT for these functions. hasLocalLinkage() is now false for available_externally, I attempted to fix the inliner and dce to handle available_externally properly. It passed make check. llvm-svn: 72328
* Fix test to account for legalization changes; I think this ends up Eli Friedman2009-05-231-1/+1
| | | | | | running an extra DAGCombine pass which improves the code a bit. llvm-svn: 72326
* Add a new step to legalization to legalize vector math operations. This Eli Friedman2009-05-233-0/+375
| | | | | | | | | | | will allow simplifying LegalizeDAG to eliminate type legalization. (I have a patch to do that, but it's not quite finished; I'll commit it once it's finished and I've fixed any review comments for this patch.) See the comment at the beginning of lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp for more details on the motivation for this patch. llvm-svn: 72325
* Make the x86 backend custom-lower UINT_TO_FP and FP_TO_UINT on 32-bit Eli Friedman2009-05-232-25/+64
| | | | | | | | | | | | | systems instead of attempting to promote them to a 64-bit SINT_TO_FP or FP_TO_SINT. This is in preparation for removing the type legalization code from LegalizeDAG: once type legalization is gone from LegalizeDAG, it won't be able to handle the i64 operand/result correctly. This isn't quite ideal, but I don't think any other operation for any target ends up in this situation, so treating this case specially seems reasonable. llvm-svn: 72324
* One step to fixing up codegen for a=b, where a is a volatile struct.Mike Stump2009-05-231-1/+13
| | | | llvm-svn: 72315
* Add IEEE quad support to DefineFloatMacros.Eli Friedman2009-05-231-15/+22
| | | | llvm-svn: 72314
* Initialize Obj-C GC attributes when emitting BlockDeclRefExprs.Daniel Dunbar2009-05-232-1/+14
| | | | | | - Otherwise we may incorrectly miss generation of some write barriers. llvm-svn: 72313
* CMake: Use libdl only when available. Fixes build on FreeBSD.Oscar Fuentes2009-05-232-1/+4
| | | | llvm-svn: 72311
* PR4247: Widen the buffer slightly so it can hold all the definitions for Eli Friedman2009-05-231-1/+1
| | | | | | | | PPC double double. (No testcase because no normal target uses the format at the moment.) llvm-svn: 72310
OpenPOWER on IntegriCloud