Jakob Stoklund Olesen
42caaa4f5b
Switch SSEDomainFix to SpecificBumpPtrAllocator.
...
llvm-svn: 100332
2010-04-04 18:00:21 +00:00
Chris Lattner
d20699bc87
Momentous day: remove the "O" member from AsmPrinter. Now all
...
"asm printering" happens through MCStreamer. This also
Streamerizes PIC16 debug info, which escaped my attention.
This removes a leak from LLVMTargetMachine of the 'legacy'
output stream.
llvm-svn: 100327
2010-04-04 08:18:47 +00:00
Chris Lattner
d479317d65
streamerize printing of dbg_value, the x86 backend is now fully
...
streamerized for everything.
llvm-svn: 100316
2010-04-04 05:40:34 +00:00
Chris Lattner
bf43d4b6e9
split DEBUG_VALUE printing stuff out to its own method.
...
llvm-svn: 100315
2010-04-04 05:38:19 +00:00
Chris Lattner
9b13639f45
mc'ize elf stub printing, convert cygwin stuff to EmitRawText,
...
which will abort in .o file writing mode.
llvm-svn: 100314
2010-04-04 05:35:04 +00:00
Chris Lattner
3bb09768cb
fix PrintAsmOperand and PrintAsmMemoryOperand to pass down
...
raw_ostream to print to.
llvm-svn: 100313
2010-04-04 05:29:35 +00:00
Chris Lattner
787253819a
use predicates in DBG_VALUE printing code to simplify it.
...
llvm-svn: 100312
2010-04-04 05:21:31 +00:00
Chris Lattner
562e02e4e1
remove more implicit uses of "O".
...
llvm-svn: 100311
2010-04-04 05:19:20 +00:00
Chris Lattner
7012916275
fix an ugly wart in the MCInstPrinter api where the
...
raw_ostream to print an instruction to had to be specified
at MCInstPrinter construction time instead of being able
to pick at each call to printInstruction.
llvm-svn: 100307
2010-04-04 05:04:31 +00:00
Chris Lattner
76c564b1bb
change a ton of code to not implicitly use the "O" raw_ostream
...
member of AsmPrinter. Instead, pass it in explicitly.
llvm-svn: 100306
2010-04-04 04:47:45 +00:00
Mon P Wang
c576ee9040
Reapply address space patch after fixing an issue in MemCopyOptimizer.
...
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100304
2010-04-04 03:10:48 +00:00
Chris Lattner
f33c7fcc28
asmstreamerize the .size directive for function bodies, force clients
...
of printOffset to pass in a stream to print to.
llvm-svn: 100296
2010-04-03 22:28:33 +00:00
Eric Christopher
000e502eb1
Rewrite aesimc handling. It only takes a single input and has a single
...
dest.
llvm-svn: 100252
2010-04-02 23:48:33 +00:00
Eric Christopher
2ef63183a5
Separate out the AES-NI instructions from the SSE4.2 instructions. Add
...
a new subtarget option for AES and check for the support. Add "westmere"
line of processors and add AES-NI support to the core i7.
Add a couple of TODOs for information I couldn't verify.
llvm-svn: 100231
2010-04-02 21:54:27 +00:00
Sean Callanan
010b373cf3
Fixes to the X86 disassembler. The disassembler will now
...
return an error status in all failure cases, printing
messages to debugs() only when debugging is enabled.
llvm-svn: 100229
2010-04-02 21:23:51 +00:00
Chris Lattner
6f306d7d30
use DebugLoc default ctor instead of DebugLoc::getUnknownLoc()
...
llvm-svn: 100214
2010-04-02 20:16:16 +00:00
Evan Cheng
61399375a2
Correctly lower memset / memcpy of undef. It should be a nop. PR6767.
...
llvm-svn: 100208
2010-04-02 19:36:14 +00:00
Mon P Wang
999c1b927b
Revert r100191 since it breaks objc in clang
...
llvm-svn: 100199
2010-04-02 18:43:02 +00:00
Mon P Wang
a972ab8564
Reapply address space patch after fixing an issue in MemCopyOptimizer.
...
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
llvm-svn: 100191
2010-04-02 18:04:15 +00:00
Eric Christopher
06a1639b98
Remove FIXME - if there's a better way to do this it isn't here.
...
llvm-svn: 100176
2010-04-02 04:32:37 +00:00
Dale Johannesen
4244d12769
Teach AnalyzeBranch, RemoveBranch and the branch
...
folder to be tolerant of debug info following the
branch(es) at the end of a block.
llvm-svn: 100168
2010-04-02 01:38:09 +00:00
Chandler Carruth
8d6d0d4c58
Disambiguate conditional expression for newer GCCs.
...
llvm-svn: 100167
2010-04-02 01:31:24 +00:00
Eric Christopher
5342ddaadf
Revert r100143.
...
llvm-svn: 100146
2010-04-01 22:54:42 +00:00
Evan Cheng
f997c31598
In 64-bit mode, use i64 to lower memcpy / memset instead of f64.
...
llvm-svn: 100137
2010-04-01 20:27:45 +00:00
Evan Cheng
d9929f03cf
Add comments about DstAlign and SrcAlign.
...
llvm-svn: 100132
2010-04-01 20:10:42 +00:00
Evan Cheng
4c014c892a
- Avoid using floating point stores to implement memset unless the value is zero.
...
- Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type.
llvm-svn: 100118
2010-04-01 18:19:11 +00:00
Evan Cheng
43cd9e3845
Fix sdisel memcpy, memset, memmove lowering:
...
1. Makes it possible to lower with floating point loads and stores.
2. Avoid unaligned loads / stores unless it's fast.
3. Fix some memcpy lowering logic bug related to when to optimize a
load from constant string into a constant.
4. Adjust x86 memcpy lowering threshold to make it more sane.
5. Fix x86 target hook so it uses vector and floating point memory
ops more effectively.
rdar://7774704
llvm-svn: 100090
2010-04-01 06:04:33 +00:00
Evan Cheng
738b0f9ec7
Nehalem unaligned memory access is fast.
...
llvm-svn: 100089
2010-04-01 05:58:17 +00:00
Eric Christopher
9002ac5d93
Add aeskeygenassist intrinsic and rename all of the aes intrinsics to
...
aes instead of sse4.2. Add a brief todo for a subtarget flag and rework
the aeskeygenassist instruction to more closely match the docs.
llvm-svn: 100078
2010-04-01 03:05:45 +00:00
Chris Lattner
503a0ef6f4
reduce indentation, minor cleanups.
...
llvm-svn: 100042
2010-03-31 20:32:51 +00:00
Jakob Stoklund Olesen
58ca0a649c
Use spaces, not tabs
...
llvm-svn: 100037
2010-03-31 20:05:12 +00:00
Bill Wendling
d749aefbd5
Comment the changes for r98218 and friends inside the source code.
...
llvm-svn: 100033
2010-03-31 18:48:58 +00:00
Jakob Stoklund Olesen
4cd5866f8e
Fix PR6750. Don't try to merge a DomainValue with itself.
...
llvm-svn: 100016
2010-03-31 17:13:16 +00:00
Jakob Stoklund Olesen
9986ba954c
Replace V_SET0 with variants for each SSE execution domain.
...
llvm-svn: 99975
2010-03-31 00:40:13 +00:00
Jakob Stoklund Olesen
710c6892be
Fix typo. Thank you, valgrind.
...
llvm-svn: 99974
2010-03-31 00:40:08 +00:00
Jakob Stoklund Olesen
6f6ebb663c
Enable -sse-domain-fix by default. Now with tests!
...
llvm-svn: 99954
2010-03-30 22:47:00 +00:00
Jakob Stoklund Olesen
3493398f13
V_SETALLONES is an integer instruction.
...
Since it is just a pxor in disguise, we should probably expand it to a full
polymorphic triple.
llvm-svn: 99953
2010-03-30 22:46:55 +00:00
Jakob Stoklund Olesen
dbff4e8103
Renumber SSE execution domains for better code size.
...
SSEDomainFix will collapse to the domain with the lower number when it has a
choice. The SSEPackedSingle domain often has smaller instructions, so prefer
that.
llvm-svn: 99952
2010-03-30 22:46:53 +00:00
Bob Wilson
6f7fd28824
Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.
...
llvm-svn: 99948
2010-03-30 22:27:04 +00:00
Jakob Stoklund Olesen
cf35648ebe
Revert "Enable -sse-domain-fix by default. What could possibly go wrong?"
...
Not running 'make check-all' before committing is a bad idea.
llvm-svn: 99933
2010-03-30 21:36:32 +00:00
Jakob Stoklund Olesen
a654df84e6
Enable -sse-domain-fix by default. What could possibly go wrong?
...
llvm-svn: 99931
2010-03-30 21:09:31 +00:00
Mon P Wang
7460571381
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset,
...
e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1)
A update of langref will occur in a subsequent checkin.
llvm-svn: 99928
2010-03-30 20:55:56 +00:00
Jakob Stoklund Olesen
3b9af40938
Add cross-block inference to SSEDomainFix.
...
llvm-svn: 99916
2010-03-30 20:04:01 +00:00
Eric Christopher
6ad8167714
Remove the pmulld intrinsic and autoupdate it as a vector multiply.
...
Rewrite the pmulld patterns, and make sure that they fold in loads of
arguments into the instruction.
llvm-svn: 99910
2010-03-30 18:49:01 +00:00
Chris Lattner
9897043928
Rip out the 'is temporary' nonsense from the MCContext interface to
...
create symbols. It is extremely error prone and a source of a lot
of the remaining integrated assembler bugs on x86-64.
This fixes rdar://7807601.
llvm-svn: 99902
2010-03-30 18:10:53 +00:00
Eric Christopher
c1ddaaf5b1
Add FIXME for operand promotion.
...
llvm-svn: 99859
2010-03-30 01:04:59 +00:00
Jakob Stoklund Olesen
486aa2eadc
Be gentle to MSVC. C++ is hard, after all.
...
llvm-svn: 99855
2010-03-30 00:09:32 +00:00
Jakob Stoklund Olesen
b551aa4da5
Basic implementation of SSEDomainFix pass.
...
Cross-block inference is primitive and wrong, but the pass is working otherwise.
llvm-svn: 99848
2010-03-29 23:24:21 +00:00
Benjamin Kramer
2788f797ca
Make isInt?? and isUint?? template specializations of the generic versions. This
...
makes calls a little bit more consistent and allows easy removal of the
specializations in the future. Convert all callers to the templated functions.
llvm-svn: 99838
2010-03-29 21:13:41 +00:00
Eric Christopher
9bdadf0d99
We'll never match these as instructions, just as intrinsics so remove
...
the SDNodes.
llvm-svn: 99835
2010-03-29 20:41:51 +00:00