Anton Korobeynikov
b88da5c190
Add stores and truncstores
...
llvm-svn: 75931
2009-07-16 13:45:00 +00:00
Anton Korobeynikov
b262cec2d0
Add patterns for various extloads
...
llvm-svn: 75930
2009-07-16 13:44:30 +00:00
Anton Korobeynikov
58f9ca9055
Do some heroic rri address matching (shamelessly stolen from x86 backend). Not tested though.
...
llvm-svn: 75929
2009-07-16 13:44:00 +00:00
Anton Korobeynikov
ba9ee88377
Change register allocation order, so R0 will be allocated the last among scratch. This will make address-calculation code much more happy.
...
llvm-svn: 75928
2009-07-16 13:43:40 +00:00
Anton Korobeynikov
f080a4a0bd
Add shifts and reg-imm address matching
...
llvm-svn: 75927
2009-07-16 13:43:18 +00:00
Anton Korobeynikov
de69aad588
Add bunch of 32-bit patterns... Uffff :)
...
llvm-svn: 75926
2009-07-16 13:42:31 +00:00
Anton Korobeynikov
7fbfe92a28
Propagate return result extension type
...
llvm-svn: 75925
2009-07-16 13:35:48 +00:00
Rafael Espindola
9541db227e
Add tests for fixes I committed earlier to the C++ FE.
...
llvm-svn: 75924
2009-07-16 13:35:42 +00:00
Anton Korobeynikov
b902c71a90
Add 32 bit subregs
...
llvm-svn: 75923
2009-07-16 13:35:30 +00:00
Anton Korobeynikov
2f5b711ced
Add another bunch of reg-imm patterns for add/or/and/xor
...
llvm-svn: 75922
2009-07-16 13:35:08 +00:00
Anton Korobeynikov
f63382b52b
Add bunch of reg-imm movs
...
llvm-svn: 75921
2009-07-16 13:34:50 +00:00
Anton Korobeynikov
349c4f3410
Proper match halfword-imm operands for mov and add
...
llvm-svn: 75920
2009-07-16 13:34:24 +00:00
Anton Korobeynikov
dcc7d19ef3
Provide masked reg-imm 'or' and 'and'
...
llvm-svn: 75919
2009-07-16 13:33:57 +00:00
Anton Korobeynikov
4b8ed9f263
Fix test running lines
...
llvm-svn: 75918
2009-07-16 13:33:21 +00:00
Anton Korobeynikov
c98835c743
Add reg-reg and pattern
...
llvm-svn: 75917
2009-07-16 13:32:49 +00:00
Anton Korobeynikov
2688d3c0a7
Add sub reg-reg pattern
...
llvm-svn: 75916
2009-07-16 13:32:16 +00:00
Anton Korobeynikov
2dd607fca7
Add xor reg-reg pattern
...
llvm-svn: 75915
2009-07-16 13:31:28 +00:00
Anton Korobeynikov
66b2612946
Add or reg-reg pattern.
...
llvm-svn: 75914
2009-07-16 13:30:53 +00:00
Anton Korobeynikov
ca9c5365ac
Add add reg-reg and reg-imm patterns
...
llvm-svn: 75913
2009-07-16 13:30:15 +00:00
Anton Korobeynikov
7b8aec2c40
Add simple reg-reg and reg-imm moves
...
llvm-svn: 75912
2009-07-16 13:29:38 +00:00
Anton Korobeynikov
7fe1d9c90e
Minimal lowering for formal_arguments / ret
...
llvm-svn: 75911
2009-07-16 13:28:59 +00:00
Anton Korobeynikov
8b299e2ae4
Add testsuite dir for systemz stuff
...
llvm-svn: 75910
2009-07-16 13:28:22 +00:00
Anton Korobeynikov
8155f0cbaa
Let's start another backend :)
...
llvm-svn: 75909
2009-07-16 13:27:25 +00:00
Richard Osborne
ee0ad3d09b
Combine an unaligned store of unaligned load into a memmove.
...
llvm-svn: 75908
2009-07-16 12:50:48 +00:00
Richard Osborne
764d765724
Lower the threshold at which memcpy / memmove / memset stop being expanded
...
inline in the XCore.
llvm-svn: 75906
2009-07-16 12:41:34 +00:00
Richard Osborne
858b52a587
Fix typo in last commit on expansion of unaligned loads.
...
llvm-svn: 75903
2009-07-16 10:48:47 +00:00
Richard Osborne
0d65748f8f
Expand unaligned 32 bit loads from an address which is a constant
...
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.
llvm-svn: 75902
2009-07-16 10:42:35 +00:00
Richard Osborne
eb8036be44
Custom lower unaligned 32 bit stores and loads into libcalls. This is
...
a big code size win since before they were expanding to upto 16
instructions.
llvm-svn: 75901
2009-07-16 10:21:18 +00:00
Evan Cheng
7a6b20df7f
Let callers decide the sub-register index on the def operand of 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.
llvm-svn: 75900
2009-07-16 09:20:10 +00:00
Chris Lattner
e12dcd84ca
use SUBREG_TO_REG instead of INSERT_SUBREG, this way the code
...
generator can know the top bits are zero, not undefined.
Thanks to Dan for pointing this out.
llvm-svn: 75899
2009-07-16 06:31:37 +00:00
Bruno Cardoso Lopes
c69e9d53bb
Fix coding style issues pointed by Bill.
...
llvm-svn: 75898
2009-07-16 06:26:41 +00:00
Chris Lattner
a9fcfe3d18
add a knob to turn off PrettyStackTrace globally. Patch by Zoltan
...
Varga!
llvm-svn: 75897
2009-07-16 06:17:45 +00:00
Chris Lattner
4939bd13ad
implement .include in the lexer/parser instead of passing it into the streamer.
...
llvm-svn: 75896
2009-07-16 06:14:39 +00:00
Chris Lattner
65f6bc8631
fix some casts that I improperly refactored, patch by Artur Pietrek!
...
llvm-svn: 75894
2009-07-16 04:34:33 +00:00
Daniel Dunbar
362bc51871
Remove unused header.
...
llvm-svn: 75893
2009-07-16 04:01:35 +00:00
Daniel Dunbar
e83e53b46f
Kill off last uses of TargetMachineRegistry class.
...
llvm-svn: 75892
2009-07-16 02:41:19 +00:00
Daniel Dunbar
88881650c6
Fix gcc 4.0 build failure, can't rely on access inside nested friended class.
...
llvm-svn: 75891
2009-07-16 02:38:28 +00:00
Daniel Dunbar
a567c0f537
Switch llc and createJIT to use simpler command line parsing for -march.
...
llvm-svn: 75890
2009-07-16 02:23:53 +00:00
Daniel Dunbar
ffc135d4d5
Add registered target list to --version output.
...
llvm-svn: 75889
2009-07-16 02:06:09 +00:00
Daniel Dunbar
f9b1d883dd
Make sure targets are initialized before we do anything, even command line
...
processing.
llvm-svn: 75888
2009-07-16 02:04:54 +00:00
Daniel Dunbar
90536f6737
Kill off <TARGET>MachineModule variables, and <TARGETASMPRINTER>ForceLink
...
variables.
- Module initialization functions supplanted the need for these.
llvm-svn: 75886
2009-07-16 01:55:13 +00:00
Dan Gohman
9b099cf51b
formatted_raw_ostream both is-a raw_ostream and has-a raw_ostream. This
...
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.
llvm-svn: 75883
2009-07-16 01:32:46 +00:00
Chris Lattner
e102784018
fix section switching to ensure that stubs are emitted to the right
...
section on ppc.
llvm-svn: 75881
2009-07-16 01:23:26 +00:00
Daniel Dunbar
4ff7d8f6c9
Add explicit comment that clients can call target initialization functions
...
multiple times.
llvm-svn: 75880
2009-07-16 01:13:00 +00:00
Devang Patel
58a041b634
Skip special LLVM prefix '1' while emitting linknage name.
...
This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name.
llvm-svn: 75875
2009-07-16 01:01:22 +00:00
Daniel Dunbar
845a780701
Regerate CMake library dependencies.
...
- Added a sed script to do this in the comments.
llvm-svn: 75872
2009-07-16 00:43:36 +00:00
Daniel Dunbar
cf7cd54d69
Kill off cmake magic to force linking.
...
- This isn't needed anymore, we require clients to call the appropriate
initialization routines using TargetSelect.h.
llvm-svn: 75871
2009-07-16 00:35:05 +00:00
Daniel Dunbar
17a807d7b3
Update llvm{do,grep} to also search cmake / .cmake files
...
llvm-svn: 75867
2009-07-16 00:06:36 +00:00
Owen Anderson
8b6ad7143c
Now that we have contexts on types, convert some more internals to use contexts.
...
llvm-svn: 75866
2009-07-16 00:03:07 +00:00
Daniel Dunbar
19efed84cc
We don't need to use llvm_report_error, this interface can deal with errors
...
(although we don't get a very good error message).
llvm-svn: 75864
2009-07-15 23:54:01 +00:00