summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* More machine LICM work. It now tracks register pressure for path from ↵Evan Cheng2010-10-161-69/+155
| | | | | | preheader to current BB and use the information determine whether hoisting is worthwhile. llvm-svn: 116654
* Fix some funky formatting that got through.Eric Christopher2010-10-161-1/+3
| | | | llvm-svn: 116653
* ARMCodeEmitter::emitMiscInstruction is dead. Long liveBill Wendling2010-10-151-45/+1
| | | | | | ARMCodeEmitter::emitMiscInstruction! llvm-svn: 116644
* Make sure offset is 0 for load/store register to the stack call.Eric Christopher2010-10-151-2/+2
| | | | llvm-svn: 116640
* Generalize MemCpyOpt's handling of call slot forwarding to function properly ↵Owen Anderson2010-10-151-18/+48
| | | | | | | | when the call slot forwarding is implemented with a load/store pair rather than a memcpy. llvm-svn: 116637
* Formatting.Eric Christopher2010-10-151-4/+4
| | | | llvm-svn: 116635
* Fix else if -> if in store machinery.Eric Christopher2010-10-151-1/+1
| | | | llvm-svn: 116628
* Reformatting. No functionalogicality changes.Bill Wendling2010-10-151-19/+15
| | | | llvm-svn: 116625
* Refactor ARM fast-isel reg + offset to be a base + offset.Eric Christopher2010-10-151-40/+45
| | | | llvm-svn: 116622
* Encoding information for the various ARM saturating add/sub instructions.Jim Grosbach2010-10-151-46/+53
| | | | llvm-svn: 116612
* ARM binary encoding information for RSB and RSC instructions.Jim Grosbach2010-10-151-44/+104
| | | | llvm-svn: 116604
* Don't mark argument value stores as immutable, as otherwise the post-RAJim Grosbach2010-10-151-1/+1
| | | | | | | scheduler may reorder loads from them before the stores and other such badness. PR8347. Patch by David Meyer llvm-svn: 116602
* Use simple RegState::Define flag instead of getDefRegState(true).Bob Wilson2010-10-151-5/+5
| | | | llvm-svn: 116601
* Refactor alias handling to AliasedSymbol.Rafael Espindola2010-10-151-13/+15
| | | | llvm-svn: 116600
* Expand GEP handling for constant offsets.Eric Christopher2010-10-151-23/+44
| | | | llvm-svn: 116594
* When expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomesJim Grosbach2010-10-151-2/+1
| | | | | | an explicit def. Make sure to capture that properly. rdar://8556556 llvm-svn: 116591
* ARM mode encoding information for UBFX and SBFX instructions.Jim Grosbach2010-10-153-6/+35
| | | | llvm-svn: 116588
* Remove unused accessor.Jakob Stoklund Olesen2010-10-151-2/+0
| | | | llvm-svn: 116580
* Refactor code a bit and avoid creating unnecessary entries in the stringRafael Espindola2010-10-151-19/+19
| | | | | | map. llvm-svn: 116579
* Remove unused ARMISD::AND selection DAG node.Bob Wilson2010-10-154-13/+0
| | | | llvm-svn: 116566
* ARM instructions that are both predicated and set the condition codesBob Wilson2010-10-151-1/+1
| | | | | | | | | | have been printed with the "S" modifier after the predicate. With ARM's unified syntax, they are supposed to go in the other order. We fixed this for Thumb when we switched to unified syntax but missed changing it for ARM. Apparently we don't generate these instructions often because no one noticed until now. Thanks to Bill Wendling for the testcase! llvm-svn: 116563
* Encoding info for extension instructions.Jim Grosbach2010-10-151-0/+8
| | | | llvm-svn: 116560
* Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.Jakob Stoklund Olesen2010-10-152-18/+13
| | | | llvm-svn: 116547
* Move stack slot assignments into LiveRangeEdit.Jakob Stoklund Olesen2010-10-154-10/+16
| | | | | | | | | | All registers created during splitting or spilling are assigned to the same stack slot as the parent register. When splitting or rematting, we may not spill at all. In that case the stack slot is still assigned, but it will be dead. llvm-svn: 116546
* Create a new LiveRangeEdit class to keep track of the new registers created whenJakob Stoklund Olesen2010-10-146-125/+206
| | | | | | | | | splitting or spillling, and to help with rematerialization. Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it possible to share remat code between InlineSpiller and SplitKit. llvm-svn: 116543
* Add missing Rd encoding for MOVs instruction.Jim Grosbach2010-10-141-0/+2
| | | | llvm-svn: 116537
* Refactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudosJim Grosbach2010-10-142-9/+38
| | | | | | | and let the ARMExpandPseudoInsts pass fix them up into the real (MOVs) instruction form. llvm-svn: 116534
* Tolerate a null parent pointer.Dan Gohman2010-10-141-1/+1
| | | | llvm-svn: 116533
* Tweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'Jim Grosbach2010-10-143-6/+6
| | | | | | pseudonym. llvm-svn: 116512
* Always use binary mode for output stream. This is important to prevent ↵Francois Pichet2010-10-141-0/+13
| | | | | | unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32. llvm-svn: 116509
* MOVi16 and MOVT ARM mode encodings.Jim Grosbach2010-10-141-7/+19
| | | | llvm-svn: 116498
* Only split around a loop if the live range has uses outside the loop periphery.Jakob Stoklund Olesen2010-10-141-14/+13
| | | | | | | | | | Before we would also split around a loop if any peripheral block had multiple uses. This could cause repeated splitting when splitting a different live range would insert uses into the periphery. Now -spiller=inline passes the nightly test suite again. llvm-svn: 116494
* Simplify encoding information and add 'dst' operand info for TAILJMP.Jim Grosbach2010-10-141-8/+6
| | | | llvm-svn: 116488
* Remove some code duplication.Rafael Espindola2010-10-141-49/+18
| | | | llvm-svn: 116484
* Remove explicit dependency of LLVMARMCodeGen on LLVMARMAsmPrinter. ItOscar Fuentes2010-10-141-5/+0
| | | | | | | creates a cyclic dependency that breaks the build when BUILD_SHARED_LIBS=ON llvm-svn: 116480
* When building shared libraries, link to required system libraries.Oscar Fuentes2010-10-141-4/+0
| | | | | | PR 8375 llvm-svn: 116479
* Handle more complex GEP based loads and add a few TODOs to deal withEric Christopher2010-10-141-10/+50
| | | | | | GEP + alloca. llvm-svn: 116474
* Add support for vmov.f64/.f32 encoding. There's a bit of a hack going onBill Wendling2010-10-142-14/+40
| | | | | | | | | here. The f32 in FCONSTS is handled as a double instead of a float in the code. So the encoding of the immediate into the instruction isn't exactly in line with the documentation in that regard. But given that we know it's handled as a double, it doesn't cause any harm. llvm-svn: 116471
* Add encoding for 'fmstat'.Bill Wendling2010-10-142-4/+2
| | | | llvm-svn: 116466
* Register pressure and instruction latency aware machine LICM. Work in progress.Evan Cheng2010-10-141-26/+242
| | | | llvm-svn: 116465
* - Add encodings for multiply add/subtract instructions in all their glory.Bill Wendling2010-10-142-67/+111
| | | | | | | - Add missing patterns for some multiply add/subtract instructions. - Add encodings for VMRS and VMSR. llvm-svn: 116464
* fix a bug I introduced, no idea how this didn't repro right.Chris Lattner2010-10-141-2/+2
| | | | llvm-svn: 116462
* Regenerate. No functional change, just cleanup.Jim Grosbach2010-10-141-6561/+6561
| | | | llvm-svn: 116459
* add uadd_ov/usub_ov to apint, consolidate constant foldingChris Lattner2010-10-142-32/+40
| | | | | | | | | logic to use the new APInt methods. Among other things this implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold which comes from "clang -ftrapv", originally brought to my attention from PR8221. llvm-svn: 116457
* constify these methods.Chris Lattner2010-10-131-5/+5
| | | | llvm-svn: 116455
* Detabify and clean up 80 column violations.Jim Grosbach2010-10-133-40/+50
| | | | llvm-svn: 116454
* add a few operations for signed operations that also Chris Lattner2010-10-131-0/+46
| | | | | | return an overflow flag. llvm-svn: 116452
* A few 80 column fixes.Jim Grosbach2010-10-133-5/+5
| | | | llvm-svn: 116451
* trailing whitespaceJim Grosbach2010-10-131-1/+1
| | | | llvm-svn: 116450
* Add a FIXME.Jim Grosbach2010-10-131-0/+5
| | | | llvm-svn: 116449
OpenPOWER on IntegriCloud