1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Commit Graph

56344 Commits

Author SHA1 Message Date
Anton Korobeynikov
8d5197ab8a zext / truncate is free on msp430. Inform codegen about this.
llvm-svn: 93556
2010-01-15 21:19:43 +00:00
Anton Korobeynikov
7a7f5c50d8 Reenable tests
llvm-svn: 93555
2010-01-15 21:19:26 +00:00
Anton Korobeynikov
f1080f2bbe Add branch relaxation pass (shamelessly stolen from PPC).
llvm-svn: 93554
2010-01-15 21:19:05 +00:00
Anton Korobeynikov
75c93b4ec3 Provide instruction sizes & encoding. No opcodes yet (but not needed so far).
llvm-svn: 93553
2010-01-15 21:18:39 +00:00
Anton Korobeynikov
719dd1465f Enable bit tests and setcc stuff.
llvm-svn: 93552
2010-01-15 21:18:18 +00:00
Anton Korobeynikov
aaed919671 Add micro-optimization which allows us to fold imm into cmp. This allows us to save 1 word (sometimes) and reduce register pressure.
llvm-svn: 93551
2010-01-15 21:18:02 +00:00
Anton Korobeynikov
0ca5fcdfaa Add instruction formats & support stuff
llvm-svn: 93550
2010-01-15 21:17:13 +00:00
Jakob Stoklund Olesen
65bc6159f6 Don't make changes to the MBB in MachineBasicBlock::canFallThrough().
This fixes the regression for -pre-regalloc-taildup in
MultiSource/Applications/lambda-0.1.3.

llvm-svn: 93541
2010-01-15 20:00:12 +00:00
Jakob Stoklund Olesen
cf4c604899 Simplify logic. Any functional change is unintended.
llvm-svn: 93540
2010-01-15 19:59:57 +00:00
Chris Lattner
493580bb5c unbreak the build, grr symlinks.
llvm-svn: 93539
2010-01-15 19:51:05 +00:00
David Greene
d8faccbeab Add some debug routines to SelectionDAG to dump full DAGs.
print/dumpWithDepth allows one to dump a DAG up to N levels deep.
dump/printWithFullDepth prints the whole DAG, subject to a depth limit
on 100 in the default case (to prevent infinite recursion).

Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly
what the non-matching DAG looks like.

llvm-svn: 93538
2010-01-15 19:43:23 +00:00
Chris Lattner
d6b351119b fix a bug in range information for $42, eliminate an
unneeded argument from ParseExpression.

llvm-svn: 93536
2010-01-15 19:39:23 +00:00
Chris Lattner
e18762283a add range information for mem X86Operand's, now all
X86Operand's have range info.

llvm-svn: 93535
2010-01-15 19:33:43 +00:00
Chris Lattner
836cf5d129 extend MCAsmParser::ParseExpression and ParseParenExpression
to return range information for subexpressions.  Use this to
provide range info for several new X86Operands.

llvm-svn: 93534
2010-01-15 19:28:38 +00:00
Chris Lattner
fba7cf4b44 give X86Operand a ctor and start passing SMLoc's into it.
llvm-svn: 93532
2010-01-15 19:06:59 +00:00
Victor Hernandez
c1b5223e76 Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument.

llvm-svn: 93531
2010-01-15 19:04:09 +00:00
Dale Johannesen
e3562c3fa2 Revert 93499. After discussion with Chris we agreed
FrameIndexes should be lowered, but the same way as
everything else (target dependent) rather than in a
special hacked way.  The lowering needs to be done
for eventual purposes of Dwarf generation.

llvm-svn: 93530
2010-01-15 18:58:14 +00:00
Chris Lattner
618f75b46e add range location info for registers, change
X86Operand::Create* implementations to avoid
copy ctor use.

llvm-svn: 93528
2010-01-15 18:51:29 +00:00
Nate Begeman
b6c8d75f62 Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available.
Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer

Further refactoring to completely remove MachOWriter and drive the object file
writer with the AsmPrinter MCInst/MCSection logic is forthcoming.

llvm-svn: 93527
2010-01-15 18:51:18 +00:00
Chris Lattner
5d30d26a5d clean up the memory management of the operands.
llvm-svn: 93526
2010-01-15 18:44:13 +00:00
Chris Lattner
b032dc1768 refactor ParseRegister to avoid using X86Operand as a temporary
datastructure when parsing a mem operand.

llvm-svn: 93521
2010-01-15 18:27:19 +00:00
Chris Lattner
c282e8bbaf mention that unwind isn't to be trusted, patch by Dustin Laurence
llvm-svn: 93518
2010-01-15 18:08:37 +00:00
Victor Hernandez
97d7107d5e Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be auto-upgraded
llvm-svn: 93515
2010-01-15 17:36:47 +00:00
Jay Foad
c4313ce9ba Test case for http://llvm.org/PR6028.
llvm-svn: 93511
2010-01-15 11:29:26 +00:00
Jay Foad
2277dd737c Fix http://llvm.org/PR6028, an assertion failure when an UndefValue of
integer type is used.

llvm-svn: 93509
2010-01-15 08:32:58 +00:00
Bob Wilson
b9a6da20e8 Change pre-regalloc tail duplication to only duplicate indirect branch blocks.
The pre-regalloc pass caused some regressions in both compile time and
performance of the generated code, and it did not improve performance, except
for indirect branches.  I also moved the check for single-block loops to speed
up the common case when running the taildup pass before reg allocation.

llvm-svn: 93505
2010-01-15 06:29:17 +00:00
Victor Hernandez
aee71b4e81 Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.

llvm-svn: 93504
2010-01-15 03:37:48 +00:00
Anton Korobeynikov
b4484a2bab Temporary disable tests
llvm-svn: 93501
2010-01-15 02:09:27 +00:00
Dale Johannesen
12ae1f52c2 Lower FrameIndex operand of DEBUG_VALUE (specially) and
print it as a comment on X86.

llvm-svn: 93499
2010-01-15 01:54:55 +00:00
Dale Johannesen
c396179c7e Remove DEBUG_DECLARE, looks like we don't need it.
Also, DEBUG_VALUE has side effects.

llvm-svn: 93498
2010-01-15 01:50:44 +00:00
Anton Korobeynikov
fb1954f28d Fix cmp emission on msp430: we definitely should turn stuff like
"icmp lhs, rhs" into "cmp rhs, lhs". This should fix PR5979.

llvm-svn: 93496
2010-01-15 01:29:49 +00:00
Devang Patel
9c7b75ebb8 Do not use AT_specification die for static variables. It confuses gdb.
llvm-svn: 93494
2010-01-15 01:12:22 +00:00
Jeffrey Yasskin
0a22bdac8d Make sure include/llvm/MC/MCParsedAsmOperand.h can be compiled alone.
llvm-svn: 93492
2010-01-15 00:41:53 +00:00
Jim Grosbach
7239c4c92e fix 80-column violations
llvm-svn: 93487
2010-01-15 00:36:15 +00:00
Devang Patel
3d022d01be new test case for r93485.
llvm-svn: 93486
2010-01-15 00:34:26 +00:00
Jim Grosbach
ed10ddd9c1 Fix 80 column violations and clean up whitespace
llvm-svn: 93484
2010-01-15 00:32:47 +00:00
Devang Patel
b41a4c332a Do not emit multiple AT_container_type attributes.
We need to find a better way to emit this info.

llvm-svn: 93481
2010-01-15 00:26:31 +00:00
Jim Grosbach
36c7973e76 Name change for consistency. No functional change.
llvm-svn: 93480
2010-01-15 00:22:18 +00:00
Jim Grosbach
ca3006c171 EmitAtomicCmpSwap() custome inserter needs to delete the MI passed in. EmitAtomicBinary() already does this.
llvm-svn: 93479
2010-01-15 00:18:34 +00:00
Jeffrey Yasskin
7a710b57f5 Teach PPC how to replaceMachineCodeForFunction correctly. (Fixes
JITTest.FunctionIsRecompiledAndRelinked.)

llvm-svn: 93475
2010-01-14 23:15:26 +00:00
Eric Christopher
9230a37bb0 Pad my commit stats by reducing indentation in this now separate
commit.

llvm-svn: 93473
2010-01-14 23:00:10 +00:00
Johnny Chen
a5f2e84b0c Added 16-bit Thumb Load/Store immediate instructions with encoding bits so that
the disassembler can properly decode Load/Store register/immediate instructions.

llvm-svn: 93471
2010-01-14 22:42:17 +00:00
Chris Lattner
eceb54e9c2 add virtual methods to get the start/end of a MCParsedAsmOperand,
the default implementation returns "unknown".

llvm-svn: 93470
2010-01-14 22:29:57 +00:00
Chris Lattner
882cb240a6 Split the TargetAsmParser "ParseInstruction" interface in half:
the new ParseInstruction method just parses and returns a list of
target operands.  A new MatchInstruction interface is used to
turn the operand list into an MCInst.

This requires new/deleting all the operands, but it also gives 
targets the ability to use polymorphic operands if they want to. 

llvm-svn: 93469
2010-01-14 22:21:20 +00:00
Anton Korobeynikov
953a94cb69 Add variable-width shifts for MSP430
llvm-svn: 93468
2010-01-14 22:09:38 +00:00
Anton Korobeynikov
5eb86c0b47 Remove pseudo-MI in custom inserter.
llvm-svn: 93467
2010-01-14 22:09:11 +00:00
Dale Johannesen
7b7109e16e Fix a comment.
llvm-svn: 93463
2010-01-14 21:50:17 +00:00
Eric Christopher
013342ad23 Few minor changes that were requested. No functional change.
llvm-svn: 93462
2010-01-14 21:48:00 +00:00
Jim Grosbach
fb10749b6d Add comment explaining the necessity of r93456
llvm-svn: 93459
2010-01-14 21:38:31 +00:00
Chris Lattner
ceabb11a5e prune #includes in TargetAsmParser.h
Pass in SMLoc of instr opcode into ParseInstruction.
Make AsmToken be a class, not a struct.

llvm-svn: 93457
2010-01-14 21:32:45 +00:00