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
Owen Anderson
4483fbda5e
Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst.
...
llvm-svn: 75863
2009-07-15 23:53:25 +00:00
Daniel Dunbar
5f443ecde8
Add missing includes.
...
llvm-svn: 75862
2009-07-15 23:48:37 +00:00
Jakob Stoklund Olesen
eeff2524ce
Verify that there is no kill flag on tied operands on two-address instructions.
...
This extra check is not trigged when runnning "make check" on top-of-tree.
Change error message to better match llvm_unreachable() grammar.
Don't call llvm_unreachable() when writing error messages to a file, but keep going.
llvm-svn: 75860
2009-07-15 23:37:26 +00:00
Daniel Dunbar
4771afe104
Lift addAssemblyEmitter into LLVMTargetMachine.
...
- No functionality change.
llvm-svn: 75859
2009-07-15 23:34:19 +00:00
Dan Gohman
5a4f64f268
Fix this comment to mention outs() rather than cout.
...
llvm-svn: 75858
2009-07-15 23:33:14 +00:00
Dan Gohman
f01e53a482
Change raw_ostream so that it doesn't call llvm_report_error
...
immediately on every output error. Instead, add a flag to
raw_ostream, and set the flag whenever an error is detected.
The flag can be queried and cleared from the public API. This
gives applications more flexibility to handling errors in
application-specific ways.
If the flag is not cleared when the raw_ostream is destructed,
llvm_report_error is called from the destructor. This ensures
that errors are not implicitly silenced, and provides
convenient default behavior for tools like llc and opt.
Clients wishing to avoid llvm_report_error calls from
raw_ostream should check for errors and clear the error flag.
llvm-svn: 75857
2009-07-15 23:25:33 +00:00
Daniel Dunbar
efb868a754
Register AsmPrinter for XCore, MSP430, and PIC16 targets.
...
- Switch to standard addAssemblyEmitter logic.
llvm-svn: 75854
2009-07-15 23:17:20 +00:00
Owen Anderson
22961edd91
Add an LLVMContext to Type, hardwired to the global context until Type uniquing is moved on the contexts themselves.
...
llvm-svn: 75853
2009-07-15 22:50:23 +00:00
Eli Friedman
6aa39dcd93
Switch invars away from using isTrapping when it really shouldn't be
...
using it.
llvm-svn: 75852
2009-07-15 22:48:29 +00:00
Bob Wilson
fb88d3e6d9
Clean up some comments.
...
llvm-svn: 75851
2009-07-15 22:43:51 +00:00