1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
Commit Graph

58551 Commits

Author SHA1 Message Date
Chris Lattner
b51960824f add asmprinter suport for unions, fixing Feature/unions.ll to actually
be doing something useful.

llvm-svn: 98677
2010-03-16 21:21:35 +00:00
Devang Patel
16c77b14f2 Ignore debug value instructions while analyzing BB for tail duplication.
llvm-svn: 98675
2010-03-16 21:02:07 +00:00
Daniel Dunbar
c8c4accbaa Revert r98666 too; it's checkin-without-testing day!
llvm-svn: 98673
2010-03-16 20:52:59 +00:00
Benjamin Kramer
94c90c236b str[r]chr returns its pointer argument so we cannot mark it as nocapture. Thanks to Duncan for spotting my mistake.
llvm-svn: 98671
2010-03-16 20:33:15 +00:00
Chris Lattner
4edab939bb temporarily xfail
llvm-svn: 98666
2010-03-16 20:08:07 +00:00
Benjamin Kramer
4b48f8274f Mark str[r]chr readonly.
llvm-svn: 98663
2010-03-16 19:36:43 +00:00
Daniel Dunbar
faade5305c Revert r98656, its breaking all over the place.
llvm-svn: 98662
2010-03-16 19:35:34 +00:00
Chris Lattner
7a96045d0a improve support for uniontype and ConstantUnion, patch by Tim Northover!
llvm-svn: 98656
2010-03-16 19:15:03 +00:00
Dan Gohman
7ac4578c0e Add an rdar number to this test.
llvm-svn: 98654
2010-03-16 19:08:20 +00:00
Chris Lattner
bc3c70b81f work around an MSVC2010 bug, PR6504
llvm-svn: 98653
2010-03-16 19:07:05 +00:00
Duncan Sands
80f9637032 Chris pointed out that producing undef here is wrong in
general.

llvm-svn: 98649
2010-03-16 18:50:54 +00:00
Bob Wilson
aee6e76a7d Remove redundant writeback flag in ARM addressing mode 5.
llvm-svn: 98648
2010-03-16 18:38:09 +00:00
Bob Wilson
279818d473 Remove the writeback flag from ARM's address mode 4. Now that we have separate
instructions for ld/st with writeback, the flag is completely redundant.

llvm-svn: 98643
2010-03-16 17:46:45 +00:00
Bob Wilson
92cb518b94 Fix unused variable warnings.
llvm-svn: 98642
2010-03-16 17:44:45 +00:00
Bob Wilson
34aca030c5 --- Reverse-merging r98637 into '.':
U    test/CodeGen/ARM/tls2.ll
U    test/CodeGen/ARM/arm-negative-stride.ll
U    test/CodeGen/ARM/2009-10-30.ll
U    test/CodeGen/ARM/globals.ll
U    test/CodeGen/ARM/str_pre-2.ll
U    test/CodeGen/ARM/ldrd.ll
U    test/CodeGen/ARM/2009-10-27-double-align.ll
U    test/CodeGen/Thumb2/thumb2-strb.ll
U    test/CodeGen/Thumb2/ldr-str-imm12.ll
U    test/CodeGen/Thumb2/thumb2-strh.ll
U    test/CodeGen/Thumb2/thumb2-ldr.ll
U    test/CodeGen/Thumb2/thumb2-str_pre.ll
U    test/CodeGen/Thumb2/thumb2-str.ll
U    test/CodeGen/Thumb2/thumb2-ldrh.ll
U    utils/TableGen/TableGen.cpp
U    utils/TableGen/DisassemblerEmitter.cpp
D    utils/TableGen/RISCDisassemblerEmitter.h
D    utils/TableGen/RISCDisassemblerEmitter.cpp
U    Makefile.rules
U    lib/Target/ARM/ARMInstrNEON.td
U    lib/Target/ARM/Makefile
U    lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
U    lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U    lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
D    lib/Target/ARM/Disassembler
U    lib/Target/ARM/ARMInstrFormats.td
U    lib/Target/ARM/ARMAddressingModes.h
U    lib/Target/ARM/Thumb2ITBlockPass.cpp

llvm-svn: 98640
2010-03-16 16:59:47 +00:00
Johnny Chen
ff030064fb Initial ARM/Thumb disassembler check-in. It consists of a tablgen backend
(RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.

Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm
instructions to help disassembly.

We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>.  See, for example, A8.6.57/58/60.

And modified test cases to not expect '+' in +reg or #+num.  For example,

; CHECK:       ldr.w	r9, [r7, #28]

llvm-svn: 98637
2010-03-16 16:36:54 +00:00
Bob Wilson
67c88e4977 Stop using the old pre-UAL syntax for LDM/STM instruction suffixes.
This does not move entirely to UAL syntax, since the default "increment after"
suffix is empty but we still use "IA" for that.

llvm-svn: 98635
2010-03-16 16:19:07 +00:00
Gabor Greif
b938a147c9 more BranchInst tests
llvm-svn: 98634
2010-03-16 15:53:58 +00:00
Daniel Dunbar
93908a4676 NNT: Add -nouname option, so machine uniquing can occur across physical machines.
llvm-svn: 98633
2010-03-16 15:53:02 +00:00
Gabor Greif
7c816503fe add BranchInst tests
llvm-svn: 98632
2010-03-16 15:26:09 +00:00
Gabor Greif
965f511613 appease valgrind testers
llvm-svn: 98628
2010-03-16 12:32:03 +00:00
Duncan Sands
bdc291ce3a Check that P is not zero initialized.
llvm-svn: 98627
2010-03-16 11:36:35 +00:00
Gabor Greif
7948b2bf2a add single return tests
llvm-svn: 98625
2010-03-16 11:24:53 +00:00
Gabor Greif
f073ba6af8 fix PR6589
adjusted unittest

I have added some doxygen to OptionalOperandTraits,
so hopefully there will be no confusion in the future.

Incidentally OptionalOperandTraits is not used any more (IIUC),
but the obvious client would be BranchInstr, and I plan
to rearrange it that way.

llvm-svn: 98624
2010-03-16 10:59:48 +00:00
Gabor Greif
7011013935 begin humbly with a repro of PR6589
llvm-svn: 98623
2010-03-16 09:55:46 +00:00
Chris Lattner
75c1269e40 add support for bugpointing the integrated assembler. Something like this
works for me: bugpoint Output/bisort.llvm.bc -run-llc-ia -safe-run-llc

This uses llc with the integrated assembler as the test compiler and llc
without it as the safe compiler.

llvm-svn: 98618
2010-03-16 06:41:47 +00:00
Chris Lattner
b91b5cdb03 fix the same bug on the x86-64 side of the fence.
llvm-svn: 98616
2010-03-16 06:39:08 +00:00
Chris Lattner
53210a1f20 fix the encoding of TAILJMPd. This fixes Benchmarks/Olden/bisort
with the integrated assembler!

llvm-svn: 98615
2010-03-16 06:30:18 +00:00
Jeffrey Yasskin
4eb3242b81 Avoid a memory leak in JITDebugRegisterer.
llvm-svn: 98612
2010-03-16 05:54:54 +00:00
Bob Wilson
545aba3681 Add a testcase for the change in r98586.
llvm-svn: 98610
2010-03-16 05:33:29 +00:00
Bill Wendling
44b1fe3ee1 Use getFirstTerminator().
llvm-svn: 98604
2010-03-16 02:01:51 +00:00
Bill Wendling
8d2ee208ab Forgot testcase for r98599.
llvm-svn: 98602
2010-03-16 01:54:20 +00:00
Bill Wendling
5f6361464d When checking if something's killed, don't rely simply on whether it's marked as
"used outside of the block". If the block ends in a return, then it won't be
used outside of it.

llvm-svn: 98599
2010-03-16 01:05:35 +00:00
Chris Lattner
eb97397472 don't form a RecordChild or CheckChildType for child #'s over 7, we don't
have enums for them.

llvm-svn: 98597
2010-03-16 00:35:11 +00:00
Bob Wilson
cb28bed4f6 Wrap a long line and add some parens to be consistent.
llvm-svn: 98596
2010-03-16 00:31:15 +00:00
Chris Lattner
adff4d133f Fix the third (and last known) case of code update problems due
to LLVM IR changes with addr label weirdness.  In the testcase, we
generate references to the two bb's when codegen'ing the first
function:

_test1:                                 ## @test1
	leaq	Ltmp0(%rip), %rax
..
	leaq	Ltmp1(%rip), %rax

Then continue to codegen the second function where the blocks
get merged.  We're now smart enough to emit both labels, producing
this code:

_test_fun:                              ## @test_fun
## BB#0:                                ## %entry
Ltmp1:                                  ## Block address taken
Ltmp0:
## BB#1:                                ## %ret
	movl	$-1, %eax
	ret

Rejoice.

llvm-svn: 98595
2010-03-16 00:29:39 +00:00
Daniel Dunbar
241d3cb048 MC: Allow modifiers in MCSymbolRefExpr, and eliminate X86MCTargetExpr.
- Although it would be nice to allow this decoupling, the assembler needs to be able to reason about MCSymbolRefExprs in too many places to make this viable. We can use a target specific encoding of the variant if this becomes an issue.
 - This patch also extends llvm-mc to support parsing of the modifiers, as opposed to lumping them in with the symbol.

llvm-svn: 98592
2010-03-15 23:51:06 +00:00
Dan Gohman
db6002b964 Recognize code for doing vector gather/scatter index calculations with
32-bit indices. Instead of shuffling each element out of the index vector,
when all indices are needed, just store the input vector to the stack and
load the elements out.

llvm-svn: 98588
2010-03-15 23:23:03 +00:00
Bob Wilson
ac5881b842 Translate "cc" clobber in ARM inline assembly to ARM::CCRRegisterClass.
Radar 7459078.

llvm-svn: 98586
2010-03-15 23:09:18 +00:00
Devang Patel
3f688c3692 Skip debug info intrinsics.
llvm-svn: 98584
2010-03-15 22:23:03 +00:00
Daniel Dunbar
476b525e01 MC/Mach-O/x86_64: Temporary labels in cstring sections require symbols (and external relocations, but we don't have x86_64 relocations yet).
llvm-svn: 98583
2010-03-15 21:56:50 +00:00
Daniel Dunbar
27eab8e4f7 MC/Mach-O: Add MCSectionMachO::getType()
llvm-svn: 98582
2010-03-15 21:56:38 +00:00
Devang Patel
926c663cfd Skip debug info intrinsics.
llvm-svn: 98581
2010-03-15 21:25:29 +00:00
Bill Wendling
5493cf6715 Now that the default for Darwin platforms is to place the LSDA into the TEXT
section, remove the target-specific code that performs this.

llvm-svn: 98580
2010-03-15 21:09:38 +00:00
Chris Lattner
45a0ae21b8 Implement support for the case when a reference to a addr-of-bb
label is generated, but then the block is deleted.  Since the
value is undefined, we just emit the label right after the entry 
label of the function.  It might matter that the label is in the
same section as the function was afterall.

llvm-svn: 98579
2010-03-15 20:39:00 +00:00
Chris Lattner
d815f6badb use Mang->getSymbol()
llvm-svn: 98578
2010-03-15 20:37:57 +00:00
Chris Lattner
0ae3e35f22 use Mang->getSymbol() more.
llvm-svn: 98577
2010-03-15 20:37:38 +00:00
Douglas Gregor
84ef0ef3b9 Extend MemoryBuffer::getFile() to take an optional "stat" structure
pointer. If given, the structure will be set with the stat information from
the file actually read.

llvm-svn: 98575
2010-03-15 20:32:14 +00:00
Devang Patel
db8c479e0d Create SDDbgValue for dbg_value intrinsics and remember its connections with DAG nodes.
This is a work in progress. Patch by Dale Johannesen!

llvm-svn: 98568
2010-03-15 19:15:44 +00:00
Chris Lattner
802ebf9561 Fix the case when a reference to an address taken BB is emitted in one
function, then the BB is RAUW'd before the definition is emitted.  There
are still two cases not being handled, but this should improve us back to
the situation before I touched anything.

llvm-svn: 98566
2010-03-15 19:09:43 +00:00