aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add a MCObjectFormat class so that code common to all targets that use aRafael Espindola2010-10-1612-63/+194
| | | | | | | | | | | | single object format can be shared. This also adds support for mov zed+(bar-foo), %eax on ELF and COFF targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116675 91177308-0d34-0410-b5e6-96231b3b80d8
* Hack around incompatible pointer warnings.Benjamin Kramer2010-10-161-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116671 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate some calls to Value::getNameStr.Benjamin Kramer2010-10-163-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116670 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak test on non-COFF targets.Benjamin Kramer2010-10-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116669 91177308-0d34-0410-b5e6-96231b3b80d8
* MC-COFF: Add support for default-null weak externals.Michael J. Spencer2010-10-164-49/+114
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116666 91177308-0d34-0410-b5e6-96231b3b80d8
* X86-Windows: Emit an undefined global __fltused symbol when targeting WindowsMichael J. Spencer2010-10-165-2/+60
| | | | | | if any floating point arguments are passed to an external function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116665 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace!Michael J. Spencer2010-10-164-111/+111
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116664 91177308-0d34-0410-b5e6-96231b3b80d8
* MC/AsmParser: Report .stabs directive as unsupported.Daniel Dunbar2010-10-161-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116659 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116654 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some funky formatting that got through.Eric Christopher2010-10-161-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116653 91177308-0d34-0410-b5e6-96231b3b80d8
* ARMCodeEmitter::emitMiscInstruction is dead. Long liveBill Wendling2010-10-151-45/+1
| | | | | | | ARMCodeEmitter::emitMiscInstruction! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116644 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure offset is 0 for load/store register to the stack call.Eric Christopher2010-10-151-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116640 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize MemCpyOpt's handling of call slot forwarding to function properly ↵Owen Anderson2010-10-152-18/+73
| | | | | | | | | when the call slot forwarding is implemented with a load/store pair rather than a memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116637 91177308-0d34-0410-b5e6-96231b3b80d8
* Formatting.Eric Christopher2010-10-151-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116635 91177308-0d34-0410-b5e6-96231b3b80d8
* lto: Respect LLVM_VERSION_INFO make variable, since setting CC arguments withDaniel Dunbar2010-10-151-0/+4
| | | | | | spaces gives tests fits and shell escaping is an art best left to jabberwockies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116632 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix else if -> if in store machinery.Eric Christopher2010-10-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116628 91177308-0d34-0410-b5e6-96231b3b80d8
* Reformatting. No functionalogicality changes.Bill Wendling2010-10-151-19/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116625 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor ARM fast-isel reg + offset to be a base + offset.Eric Christopher2010-10-151-40/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116622 91177308-0d34-0410-b5e6-96231b3b80d8
* Encoding information for the various ARM saturating add/sub instructions.Jim Grosbach2010-10-151-46/+53
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116612 91177308-0d34-0410-b5e6-96231b3b80d8
* llvmc: Add a test for the -c flag.Mikhail Glushenkov2010-10-151-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116611 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM binary encoding information for RSB and RSC instructions.Jim Grosbach2010-10-151-44/+104
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116604 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116602 91177308-0d34-0410-b5e6-96231b3b80d8
* Use simple RegState::Define flag instead of getDefRegState(true).Bob Wilson2010-10-151-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116601 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor alias handling to AliasedSymbol.Rafael Espindola2010-10-151-13/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116600 91177308-0d34-0410-b5e6-96231b3b80d8
* KillTheDoctor: Fix 2008 build. I'm actually surprised 2010 defines all of ↵Michael J. Spencer2010-10-151-0/+236
| | | | | | these, many are non-standard posix/unix extensions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116597 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand GEP handling for constant offsets.Eric Christopher2010-10-151-23/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116594 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach FileCheck to handle trailing CHECK-NOT patterns.Jakob Stoklund Olesen2010-10-152-10/+23
| | | | | | | | | | A CHECK-NOT pattern without a following CHECK pattern simply checks that the pattern doesn't match before the end of the input file. You can even have only CHECK-NOT patterns to check that strings appear nowhere in the input file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116592 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116591 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM mode encoding information for UBFX and SBFX instructions.Jim Grosbach2010-10-155-6/+51
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116588 91177308-0d34-0410-b5e6-96231b3b80d8
* FileCheckizeJakob Stoklund Olesen2010-10-151-2/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116581 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused accessor.Jakob Stoklund Olesen2010-10-151-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116580 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor code a bit and avoid creating unnecessary entries in the stringRafael Espindola2010-10-152-24/+24
| | | | | | map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116579 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused ARMISD::AND selection DAG node.Bob Wilson2010-10-154-13/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116566 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM instructions that are both predicated and set the condition codesBob Wilson2010-10-153-4/+51
| | | | | | | | | | | 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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116563 91177308-0d34-0410-b5e6-96231b3b80d8
* Encoding info for extension instructions.Jim Grosbach2010-10-151-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116560 91177308-0d34-0410-b5e6-96231b3b80d8
* Grammar.Jim Grosbach2010-10-151-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116557 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't pass --export-dynamic if TOOL_NO_EXPORTS is set.Rafael Espindola2010-10-151-2/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116550 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.Jakob Stoklund Olesen2010-10-152-18/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116547 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116546 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116543 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify test file a bit.Jim Grosbach2010-10-141-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116540 91177308-0d34-0410-b5e6-96231b3b80d8
* Add testcase for RRX and ASRS (which effectively tests MOVs, since thoseJim Grosbach2010-10-141-0/+8
| | | | | | are just forms of that instruction). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116538 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing Rd encoding for MOVs instruction.Jim Grosbach2010-10-141-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116537 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudosJim Grosbach2010-10-143-10/+39
| | | | | | | and let the ARMExpandPseudoInsts pass fix them up into the real (MOVs) instruction form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116534 91177308-0d34-0410-b5e6-96231b3b80d8
* Tolerate a null parent pointer.Dan Gohman2010-10-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116533 91177308-0d34-0410-b5e6-96231b3b80d8
* Added basic support for CPack.Oscar Fuentes2010-10-141-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116516 91177308-0d34-0410-b5e6-96231b3b80d8
* Tweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'Jim Grosbach2010-10-144-7/+7
| | | | | | pseudonym. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116512 91177308-0d34-0410-b5e6-96231b3b80d8
* Always use binary mode for output stream. This is important to prevent ↵Francois Pichet2010-10-142-4/+14
| | | | | | 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116509 91177308-0d34-0410-b5e6-96231b3b80d8
* MOVi16 and MOVT ARM mode encodings.Jim Grosbach2010-10-142-7/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116498 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116494 91177308-0d34-0410-b5e6-96231b3b80d8