aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add stores and truncstoresAnton Korobeynikov2009-07-163-3/+97
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75931 91177308-0d34-0410-b5e6-96231b3b80d8
* Add patterns for various extloadsAnton Korobeynikov2009-07-163-1/+119
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75930 91177308-0d34-0410-b5e6-96231b3b80d8
* Do some heroic rri address matching (shamelessly stolen from x86 backend). ↵Anton Korobeynikov2009-07-163-12/+268
| | | | | | Not tested though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75929 91177308-0d34-0410-b5e6-96231b3b80d8
* Change register allocation order, so R0 will be allocated the last among ↵Anton Korobeynikov2009-07-161-2/+2
| | | | | | scratch. This will make address-calculation code much more happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75928 91177308-0d34-0410-b5e6-96231b3b80d8
* Add shifts and reg-imm address matchingAnton Korobeynikov2009-07-167-3/+366
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75927 91177308-0d34-0410-b5e6-96231b3b80d8
* Add bunch of 32-bit patterns... Uffff :)Anton Korobeynikov2009-07-1617-9/+527
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75926 91177308-0d34-0410-b5e6-96231b3b80d8
* Propagate return result extension typeAnton Korobeynikov2009-07-161-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75925 91177308-0d34-0410-b5e6-96231b3b80d8
* Add tests for fixes I committed earlier to the C++ FE.Rafael Espindola2009-07-162-0/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75924 91177308-0d34-0410-b5e6-96231b3b80d8
* Add 32 bit subregsAnton Korobeynikov2009-07-164-29/+90
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75923 91177308-0d34-0410-b5e6-96231b3b80d8
* Add another bunch of reg-imm patterns for add/or/and/xorAnton Korobeynikov2009-07-161-0/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75922 91177308-0d34-0410-b5e6-96231b3b80d8
* Add bunch of reg-imm movsAnton Korobeynikov2009-07-163-4/+104
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75921 91177308-0d34-0410-b5e6-96231b3b80d8
* Proper match halfword-imm operands for mov and addAnton Korobeynikov2009-07-161-7/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75920 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide masked reg-imm 'or' and 'and'Anton Korobeynikov2009-07-164-11/+123
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75919 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test running linesAnton Korobeynikov2009-07-1610-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75918 91177308-0d34-0410-b5e6-96231b3b80d8
* Add reg-reg and patternAnton Korobeynikov2009-07-163-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75917 91177308-0d34-0410-b5e6-96231b3b80d8
* Add sub reg-reg patternAnton Korobeynikov2009-07-163-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75916 91177308-0d34-0410-b5e6-96231b3b80d8
* Add xor reg-reg patternAnton Korobeynikov2009-07-163-0/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75915 91177308-0d34-0410-b5e6-96231b3b80d8
* Add or reg-reg pattern.Anton Korobeynikov2009-07-163-0/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75914 91177308-0d34-0410-b5e6-96231b3b80d8
* Add add reg-reg and reg-imm patternsAnton Korobeynikov2009-07-164-1/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75913 91177308-0d34-0410-b5e6-96231b3b80d8
* Add simple reg-reg and reg-imm movesAnton Korobeynikov2009-07-165-8/+80
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75912 91177308-0d34-0410-b5e6-96231b3b80d8
* Minimal lowering for formal_arguments / retAnton Korobeynikov2009-07-164-1/+180
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75911 91177308-0d34-0410-b5e6-96231b3b80d8
* Add testsuite dir for systemz stuffAnton Korobeynikov2009-07-161-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75910 91177308-0d34-0410-b5e6-96231b3b80d8
* Let's start another backend :)Anton Korobeynikov2009-07-1625-2/+1884
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75909 91177308-0d34-0410-b5e6-96231b3b80d8
* Combine an unaligned store of unaligned load into a memmove.Richard Osborne2009-07-163-0/+66
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75908 91177308-0d34-0410-b5e6-96231b3b80d8
* Lower the threshold at which memcpy / memmove / memset stop being expandedRichard Osborne2009-07-161-0/+3
| | | | | | | inline in the XCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75906 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in last commit on expansion of unaligned loads.Richard Osborne2009-07-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75903 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand unaligned 32 bit loads from an address which is a constantRichard Osborne2009-07-163-0/+140
| | | | | | | | | | | | | | | | offset from a 32 bit aligned base as follows: ldw low, base[offset >> 2] ldw high, base[(offset >> 2) + 1] shr low_shifted, low, (offset & 0x3) * 8 shl high_shifted, high, 32 - (offset & 0x3) * 8 or result, low_shifted, high_shifted Expand 32 bit loads / stores with 16 bit alignment into two 16 bit loads / stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75902 91177308-0d34-0410-b5e6-96231b3b80d8
* Custom lower unaligned 32 bit stores and loads into libcalls. This is Richard Osborne2009-07-164-1/+108
| | | | | | | | a big code size win since before they were expanding to upto 16 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75901 91177308-0d34-0410-b5e6-96231b3b80d8
* Let callers decide the sub-register index on the def operand of ↵Evan Cheng2009-07-1620-49/+277
| | | | | | | | | rematerialized instructions. Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75900 91177308-0d34-0410-b5e6-96231b3b80d8
* use SUBREG_TO_REG instead of INSERT_SUBREG, this way the codeChris Lattner2009-07-161-1/+1
| | | | | | | | | generator can know the top bits are zero, not undefined. Thanks to Dan for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75899 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix coding style issues pointed by Bill.Bruno Cardoso Lopes2009-07-163-26/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75898 91177308-0d34-0410-b5e6-96231b3b80d8
* add a knob to turn off PrettyStackTrace globally. Patch by ZoltanChris Lattner2009-07-162-1/+12
| | | | | | | Varga! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75897 91177308-0d34-0410-b5e6-96231b3b80d8
* implement .include in the lexer/parser instead of passing it into the streamer.Chris Lattner2009-07-166-25/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75896 91177308-0d34-0410-b5e6-96231b3b80d8
* fix some casts that I improperly refactored, patch by Artur Pietrek!Chris Lattner2009-07-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75894 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused header.Daniel Dunbar2009-07-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75893 91177308-0d34-0410-b5e6-96231b3b80d8
* Kill off last uses of TargetMachineRegistry class.Daniel Dunbar2009-07-164-34/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75892 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix gcc 4.0 build failure, can't rely on access inside nested friended class.Daniel Dunbar2009-07-161-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75891 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch llc and createJIT to use simpler command line parsing for -march.Daniel Dunbar2009-07-163-17/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75890 91177308-0d34-0410-b5e6-96231b3b80d8
* Add registered target list to --version output.Daniel Dunbar2009-07-163-20/+86
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75889 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure targets are initialized before we do anything, even command lineDaniel Dunbar2009-07-162-5/+8
| | | | | | | processing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75888 91177308-0d34-0410-b5e6-96231b3b80d8
* Kill off <TARGET>MachineModule variables, and <TARGETASMPRINTER>ForceLinkDaniel Dunbar2009-07-1612-86/+0
| | | | | | | | variables. - Module initialization functions supplanted the need for these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75886 91177308-0d34-0410-b5e6-96231b3b80d8
* formatted_raw_ostream both is-a raw_ostream and has-a raw_ostream. ThisDan Gohman2009-07-161-3/+24
| | | | | | | | | | | | | | | | means that two separate raw_ostreams are doing buffering before data is sent to the underlying stream. Besides the inefficiency of redundant buffering, the second level of buffering doesn't recieve flush() requests. Fix this by having formatted_raw_ostream set the underlying raw_ostream to be unbuffered. This eliminates inefficiency due to redundant buffering, and it makes the flush() disconnect harmless. This fixes PR4559. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75883 91177308-0d34-0410-b5e6-96231b3b80d8
* fix section switching to ensure that stubs are emitted to the rightChris Lattner2009-07-161-4/+5
| | | | | | | section on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75881 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit comment that clients can call target initialization functionsDaniel Dunbar2009-07-161-0/+6
| | | | | | | multiple times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75880 91177308-0d34-0410-b5e6-96231b3b80d8
* Skip special LLVM prefix '1' while emitting linknage name.Devang Patel2009-07-161-4/+25
| | | | | | | This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75875 91177308-0d34-0410-b5e6-96231b3b80d8
* Regerate CMake library dependencies.Daniel Dunbar2009-07-161-50/+48
| | | | | | | - Added a sed script to do this in the comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75872 91177308-0d34-0410-b5e6-96231b3b80d8
* Kill off cmake magic to force linking.Daniel Dunbar2009-07-162-32/+0
| | | | | | | | - This isn't needed anymore, we require clients to call the appropriate initialization routines using TargetSelect.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75871 91177308-0d34-0410-b5e6-96231b3b80d8
* Update llvm{do,grep} to also search cmake / .cmake filesDaniel Dunbar2009-07-162-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75867 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that we have contexts on types, convert some more internals to use contexts.Owen Anderson2009-07-161-8/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75866 91177308-0d34-0410-b5e6-96231b3b80d8
* We don't need to use llvm_report_error, this interface can deal with errorsDaniel Dunbar2009-07-151-2/+2
| | | | | | | (although we don't get a very good error message). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75864 91177308-0d34-0410-b5e6-96231b3b80d8