summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* BasicConstraintManager:Ted Kremenek2008-12-032-3/+32
| | | | | | | | | | | - Fix nonsensical logic in AssumeSymGE. When comparing 'sym >= constant' and the constant is the maximum integer value, add the constraint that 'sym == constant' when the path is deemed feasible. All other cases are feasible. - Improve AssumeSymGT. When comparing 'sym > constant' and constant is the maximum integer value we know the path is infeasible. - Add test case for this enhancement to AssumeSymGT. llvm-svn: 60490
* BasicConstraintManager:Ted Kremenek2008-12-032-6/+34
| | | | | | | | | | | | - Fix nonsensical logic in AssumeSymLE. When comparing 'sym <= constant' and the constant is the minimum integer value, add the constraint that 'sym == constant' when the path is deemed feasible. All other cases are feasible. - Improve AssumeSymLT to address <rdar://problem/6407949>. When comparing 'sym < constant' and constant is the minimum integer value we know the path is infeasible. - Add test case for <rdar://problem/6407949>. llvm-svn: 60489
* Split foldMemoryOperand into public non-virtual and protected virtualDan Gohman2008-12-0316-105/+191
| | | | | | | parts, and add target-independent code to add/preserve MachineMemOperands. llvm-svn: 60488
* Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.Dan Gohman2008-12-0322-54/+54
| | | | llvm-svn: 60487
* Extend X86's addFrameReference to add a MachineMemOperand forDan Gohman2008-12-033-4/+26
| | | | | | | the frame reference. This will help post-RA scheduling determine that spills to distinct stack slots are independent. llvm-svn: 60486
* Fix some tests. The grep for "il" was matching "file".Rafael Espindola2008-12-036-8/+10
| | | | llvm-svn: 60485
* Update a comment.Dan Gohman2008-12-031-3/+4
| | | | llvm-svn: 60484
* Fix typo in index operator overloading.Sebastian Redl2008-12-031-1/+1
| | | | llvm-svn: 60483
* Only check that the result of the mapping was notDuncan Sands2008-12-031-0/+1
| | | | | | a new node if the node was actually remapped. llvm-svn: 60482
* Fix bug 3140.Rafael Espindola2008-12-036-2/+22
| | | | | | Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480
* Add support for ISD::TRAP to the XCore backendRichard Osborne2008-12-033-1/+27
| | | | llvm-svn: 60479
* Refactor code. No functionality change.Evan Cheng2008-12-031-72/+75
| | | | llvm-svn: 60478
* CC should only be a ConstantSDNode at this point. Just use 'cast' instead of ↵Bill Wendling2008-12-031-9/+9
| | | | | | 'dyn_cast'. llvm-svn: 60477
* Fix test.Evan Cheng2008-12-031-4/+2
| | | | llvm-svn: 60476
* testcase for br undef folding.Chris Lattner2008-12-031-0/+12
| | | | llvm-svn: 60471
* Teach jump threading some more simple tricks:Chris Lattner2008-12-032-16/+178
| | | | | | | | | | | | | | | | 1) have it fold "br undef", which does occur with surprising frequency as jump threading iterates. 2) teach j-t to delete dead blocks. This removes the successor edges, reducing the in-edges of other blocks, allowing recursive simplification. 3) Fold things like: br COND, BBX, BBY BBX: br COND, BBZ, BBW which also happens because jump threading iterates. llvm-svn: 60470
* third time is the charm.Chris Lattner2008-12-031-1/+3
| | | | llvm-svn: 60469
* fix assertion.Chris Lattner2008-12-031-1/+1
| | | | llvm-svn: 60468
* don't spew tons of stuff to the output. This testcase is *not* forChris Lattner2008-12-031-1/+1
| | | | | | loop deletion (it is for a ton of passes), which is very bad. llvm-svn: 60465
* Rename DeleteBlockIfDead to DeleteDeadBlock and make it Chris Lattner2008-12-033-14/+8
| | | | | | | unconditionally delete the block. All likely clients will do the checking anyway. llvm-svn: 60464
* Factor some code out of SimplifyCFG, forming a new Chris Lattner2008-12-033-21/+39
| | | | | | DeleteBlockIfDead method. llvm-svn: 60463
* If a global var decl has an initializer, make sure to always set its linkage ↵Anders Carlsson2008-12-032-0/+9
| | | | | | to external. llvm-svn: 60462
* Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86'sDan Gohman2008-12-037-20/+164
| | | | | | | | | | | | foldMemoryOperand how to "fold" them, by converting them into constant-pool loads. When they aren't folded, they use xorps/cmpeqd, but for example when register pressure is high, they may now be folded as memory operands, which reduces register pressure. Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will remat it instead of copying zeros around (V_SETALLONES was already marked). llvm-svn: 60461
* Change label to 'carry' for unsigned adds.Bill Wendling2008-12-031-2/+2
| | | | llvm-svn: 60460
* Add a sanity-check to tablegen to catch the case where isSimpleLoadDan Gohman2008-12-038-6/+25
| | | | | | | | | is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
* Fix a missing #include.Dan Gohman2008-12-031-0/+1
| | | | llvm-svn: 60458
* Add an explicit keyword.Dan Gohman2008-12-031-1/+1
| | | | llvm-svn: 60457
* Replace a #include with a forward-declaration.Dan Gohman2008-12-031-1/+1
| | | | llvm-svn: 60456
* Fix this comment to reflect that it applies to types otherDan Gohman2008-12-031-1/+1
| | | | | | than just i32. llvm-svn: 60455
* Fix byval arguments in the fastcc calling convention. The fastcc conventionDan Gohman2008-12-033-2/+26
| | | | | | | | | delegates to the regular x86-32 convention which handles byval, but only after it handles a few cases, and it's necessary to handle byval before handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc miscompiling LLVM. llvm-svn: 60453
* PTH:Ted Kremenek2008-12-033-16/+29
| | | | | | Use an array instead of a DenseMap to cache persistent IDs -> IdentifierInfo*. This leads to a 4% speedup at -fsyntax-only using PTH. llvm-svn: 60452
* Add nounwind attributes to this test.Dan Gohman2008-12-031-2/+2
| | | | llvm-svn: 60451
* More support for rewriting property getter/setters.Steve Naroff2008-12-031-1/+44
| | | | llvm-svn: 60450
* testcases for recent dag combiner changesDale Johannesen2008-12-033-0/+54
| | | | llvm-svn: 60449
* Update Xcode project.Ted Kremenek2008-12-031-4/+6
| | | | llvm-svn: 60448
* - Remove PTHManager.cpp. Move all of its functions to PTHLexer.cpp since ↵Ted Kremenek2008-12-034-265/+267
| | | | | | | | some of the internal methods are used by PTHLexer (their implementations are intertwined.) This enables some important inlining opportunities at -O3. - Don't construct an std::vector<Token> prior to feeding PTH tokens to the Preprocessor. Stream them off the PTH file directly. llvm-svn: 60447
* Fix isIntN to work with APInts > 64 bits. This method is onlyChris Lattner2008-12-021-5/+7
| | | | | | used by clang apparently. llvm-svn: 60446
* Correct pretty printing of array new expressions.Sebastian Redl2008-12-021-4/+9
| | | | llvm-svn: 60444
* Remove a (what appears to be) overly strict assertion. Here is what happened:Evan Cheng2008-12-022-1/+18
| | | | | | | | | | | 1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert. Duncan, please take a look. Thanks. llvm-svn: 60443
* Minor rewrite per review feedback.Dale Johannesen2008-12-021-8/+7
| | | | llvm-svn: 60442
* Update Xcode project.Ted Kremenek2008-12-021-1/+11
| | | | llvm-svn: 60441
* Add "-token-cache" option for using pretokenized cache files.Ted Kremenek2008-12-021-0/+15
| | | | llvm-svn: 60440
* Non-functional change: make custom lowering for truncate stylisticallyScott Michel2008-12-021-5/+12
| | | | | | consistent with the way it's generally done in other places. llvm-svn: 60439
* CellSPU:Scott Michel2008-12-024-45/+260
| | | | | | | | | | - Incorporate Tilmann Scheller's ISD::TRUNCATE custom lowering patch - Update SPU calling convention info, even if it's not used yet (but can be at some point or another) - Ensure that any-extended f32 loads are custom lowered, especially when they're promoted for use in printf. llvm-svn: 60438
* Preprocessor:Ted Kremenek2008-12-022-4/+44
| | | | | | | | | - Added method "setPTHManager" that will be called by the driver to install a PTHManager for the Preprocessor. - Fixed some comments. - Added EnterSourceFileWithPTH to mirror EnterSourceFileWithLexer. llvm-svn: 60437
* Added PTHManager, a utility class that will be used by Preprocessor to ↵Ted Kremenek2008-12-022-0/+335
| | | | | | lazily create PTHLexer objects for pre-tokenized files. llvm-svn: 60436
* PTH emission:Ted Kremenek2008-12-021-66/+61
| | | | | | | | | - Output 32 bit integers using bit-shifting + write of individual bytes. This is motivated because we aren't guaranteed to load 32-bit ints of the mmaped PTH file at 4-byte offsets. - Don't emit flags for IdentifierInfos. These are lazily populated by the Preprocessor/Parser. - Only write out tokens for files with absolute paths. This is potentially temporary, but simplifies things for now. llvm-svn: 60435
* Fix a typo in a comment.Dan Gohman2008-12-021-1/+1
| | | | llvm-svn: 60434
* Add support for folding spills into preceding defs when doing pre-alloc ↵Owen Anderson2008-12-021-27/+101
| | | | | | splitting. llvm-svn: 60433
* One more transformation.Dale Johannesen2008-12-021-0/+8
| | | | llvm-svn: 60432
OpenPOWER on IntegriCloud