summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* implement rdar://8407928 - support for in/out with a missing "a" register.Chris Lattner2010-09-111-1/+33
| | | | llvm-svn: 113689
* fix the asmparser so that the target is responsible for skipping toChris Lattner2010-09-113-8/+23
| | | | | | | | | | | | | | the end of the line on a parser error, allowing skipping to happen for syntactic errors but not for semantic errors. Before we would miss emitting a diagnostic about the second line, because we skipped it due to the semantic error on the first line: foo %eax bar %al This fixes rdar://8414033 - llvm-mc ignores lines after an invalid instruction mnemonic errors llvm-svn: 113688
* Invert and-of-or into or-of-and when doing so would allow us to clear bits ↵Owen Anderson2010-09-111-5/+30
| | | | | | | | | | | | | | of the and's mask. This can result in increased opportunities for store narrowing in code generation. Update a number of tests for this change. This fixes <rdar://problem/8285027>. Additionally, because this inverts the order of ors and ands, some patterns for optimizing or-of-and-of-or no longer fire in instances where they did originally. Add a simple transform which recaptures most of these opportunities: if we have an or-of-constant-or and have failed to fold away the inner or, commute the order of the two ors, to give the non-constant or a chance for simplification instead. llvm-svn: 113679
* Rename ConvertToSetZeroFlag to something more general.Bill Wendling2010-09-113-6/+6
| | | | llvm-svn: 113670
* No need to recompute the SrcReg and CmpValue.Bill Wendling2010-09-103-6/+5
| | | | llvm-svn: 113666
* Move some of the decision logic for converting an instruction into one that setsBill Wendling2010-09-103-13/+20
| | | | | | | the 'zero' bit down into the back-end. There are other cases where this logic isn't sufficient, so they should be handled separately. llvm-svn: 113665
* Start sketching out ARM fast-isel calls.Eric Christopher2010-09-101-1/+37
| | | | llvm-svn: 113662
* For consistency.Eric Christopher2010-09-101-0/+1
| | | | llvm-svn: 113659
* Newline at end of file.Eric Christopher2010-09-101-1/+1
| | | | llvm-svn: 113654
* Fix a comment typo.Bob Wilson2010-09-101-1/+1
| | | | llvm-svn: 113653
* Split out some of the calling convention bits so that they can beEric Christopher2010-09-102-147/+161
| | | | | | used for fast-isel. llvm-svn: 113652
* Teach InstructionSimplify to fold (A & B) & A -> A & B and (A | B) | A -> A | B.Benjamin Kramer2010-09-101-0/+20
| | | | | | Reassociate does this but it doesn't catch all cases (e.g. if the operands are i1). llvm-svn: 113651
* typoesGabor Greif2010-09-103-6/+6
| | | | llvm-svn: 113647
* Modify the comparison optimizations in the peephole optimizer to update theBill Wendling2010-09-103-9/+17
| | | | | | | iterator when an optimization took place. This allows us to do more insane things with the code than just remove an instruction or two. llvm-svn: 113640
* Add a missing case to duplicateCPV() for LSDA constants. Add a FIXME. ↵Jim Grosbach2010-09-101-0/+8
| | | | | | rdar://8302157 llvm-svn: 113637
* CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.Michael J. Spencer2010-09-1027-14/+135
| | | | llvm-svn: 113632
* Add X86 MMX type to bitcode and Type.Dale Johannesen2010-09-1012-1/+34
| | | | | | | (The Ada bindings probably need it too, but all the obvious places to change say "do not edit this file".) llvm-svn: 113618
* Use StringRef which performs the "early exit" when compared against a constantBill Wendling2010-09-101-6/+1
| | | | | | string. llvm-svn: 113615
* Add DEBUG message.Devang Patel2010-09-102-4/+16
| | | | llvm-svn: 113614
* Reapply r113585. The msvc machine is mercurial.Bill Wendling2010-09-101-2/+2
| | | | llvm-svn: 113610
* This transform is also performed by InstructionSimplify, remove the duplicate.Benjamin Kramer2010-09-101-3/+0
| | | | llvm-svn: 113608
* r113585 was causing clang-i686-xp-msvc9 to fail in mysterious ways that I can'tBill Wendling2010-09-101-2/+2
| | | | | | understand (the log file was no help). llvm-svn: 113605
* Early exit with simple checks.Bill Wendling2010-09-101-3/+6
| | | | llvm-svn: 113603
* Auto-upgrade the magic ".llvm.eh.catch.all.value" global toBill Wendling2010-09-102-0/+20
| | | | | | "llvm.eh.catch.all.value". Only the name needs to be changed. llvm-svn: 113600
* Calculate the number of VLDM/VSTM registers by subtracting the number ofBob Wilson2010-09-101-2/+2
| | | | | | fixed operands from the total number of operands (including the variadic ones). llvm-svn: 113597
* Lower the unrolling theshold to 150. Empirical tests indicate that this is ↵Owen Anderson2010-09-101-1/+1
| | | | | | | | a sweet spot in the performance per code size increase curve. llvm-svn: 113595
* Mark the sse_load_f32 and sse_load_f64 load patterns as having memoperands soBill Wendling2010-09-101-2/+2
| | | | | | | that the memoperands are properly set after DAG building and general mucking about. llvm-svn: 113585
* Reword since this may not be a bug but intended behavior.Bill Wendling2010-09-101-10/+6
| | | | llvm-svn: 113584
* Fix merging base-updates for VLDM/VSTM: Before I switched these instructionsBob Wilson2010-09-101-1/+2
| | | | | | | | | | to use AddrMode4, there was a count of the registers stored in one of the operands. I changed that to just count the operands but forgot to adjust for the size of D registers. This was noticed by Evan as a performance problem but it is a potential correctness bug as well, since it is possible that this could merge a base update with a non-matching immediate. llvm-svn: 113576
* Teach if-converter to be more careful with predicating instructions that wouldEvan Cheng2010-09-1022-72/+114
| | | | | | | | | | | take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. llvm-svn: 113570
* Fix build error.Eric Christopher2010-09-101-1/+1
| | | | llvm-svn: 113566
* Update comments, reorganize some code, rename variables to beEric Christopher2010-09-101-43/+40
| | | | | | more clear. No functional change. llvm-svn: 113565
* 64-bit fp loads can come straight out of the constant pool, not asEric Christopher2010-09-091-10/+18
| | | | | | bad as I'd thought. llvm-svn: 113561
* Discard metadata produced by LLVM 2.7. The value enumeration it usedDan Gohman2010-09-092-15/+45
| | | | | | | | | | | | | is different from what the code now uses in a two ways: NamedMDNodes were considered Values and included in the numbering, and the function-local metadata counter wasn't reset between functions. The later problem breaks lazy deserialization, so instead of trying to emulate the old numbering, just drop the old metadata. The only in-tree use case is debug info with LTO, where the QOI loss is considered acceptable. llvm-svn: 113557
* llvm-mc: Don't crash when using -n and we see a directive before the initial ↵Daniel Dunbar2010-09-091-0/+30
| | | | | | | | section. - This is annoying, because we have to scatter this check everywhere that could emit real data, but I see no better solution. llvm-svn: 113552
* llvm-mc: Make sure we exit != 0 if any errors are encountered.Daniel Dunbar2010-09-091-8/+10
| | | | llvm-svn: 113551
* SIToFP and FPToSI conversions work only on fp-reg to fp-reg. MoveEric Christopher2010-09-091-7/+33
| | | | | | some data around and implement a couple of move routines to do this. llvm-svn: 113546
* MDNodes are not Constants.Dan Gohman2010-09-091-5/+0
| | | | llvm-svn: 113539
* Print invalid metadata references as <badref>, for consistency withDan Gohman2010-09-091-2/+10
| | | | | | regular value references. llvm-svn: 113538
* New "move to fp reg" routine. Use it.Eric Christopher2010-09-091-5/+12
| | | | llvm-svn: 113537
* "Strike that, reverse it." -- Mr. Wonka.Eric Christopher2010-09-091-2/+2
| | | | | | Truncate when truncating, extend when extending. llvm-svn: 113536
* What the loop unroller cares about, rather than just not unrolling loops ↵Owen Anderson2010-09-092-5/+11
| | | | | | | | | | | with calls, is not unrolling loops that contain calls that would be better off getting inlined. This mostly comes up when an interleaved devirtualization pass has devirtualized a call which the inliner will inline on a future pass. Thus, rather than blocking all loops containing calls, add a metric for "inline candidate calls" and block loops containing those instead. llvm-svn: 113535
* Add FPTrunc, fix some bugs where I forgot to update the value map.Eric Christopher2010-09-091-2/+28
| | | | llvm-svn: 113533
* Revert r113439, which relaxed the requirement that loops containing calls ↵Owen Anderson2010-09-091-4/+2
| | | | | | | | cannot be unrolled. After some discussion, there seems to be a better way to achieve the same effect. llvm-svn: 113528
* r113526 introduced an unintended change to the loop unrolling threshold. ↵Owen Anderson2010-09-091-1/+1
| | | | | | Revert it. llvm-svn: 113527
* Fix typo in code to cap the loop code size reduction calculation.Owen Anderson2010-09-091-2/+2
| | | | llvm-svn: 113526
* Use code-size reduction metrics to estimate the amount of savings we'll get ↵Owen Anderson2010-09-091-1/+24
| | | | | | | | when we unroll a loop. Next step is to recalculate the threshold values given this new heuristic. llvm-svn: 113525
* Basic FP->Int, Int->FP conversions.Eric Christopher2010-09-091-0/+55
| | | | llvm-svn: 113523
* Add one more pattern to fallback movddupBruno Cardoso Lopes2010-09-091-0/+2
| | | | llvm-svn: 113522
* Extend the getDependence query with support for PHI translation.Dan Gohman2010-09-092-13/+57
| | | | llvm-svn: 113521
OpenPOWER on IntegriCloud