Wesley Peck
4b074b8995
Fixing improperly encoded reverse subtract instructions in MBlaze backend.
...
llvm-svn: 118943
2010-11-12 23:41:10 +00:00
Owen Anderson
7cd724ae7d
Revert r118939 while I work out why it broke some buildbots.
...
llvm-svn: 118942
2010-11-12 23:36:03 +00:00
Wesley Peck
c542248602
1. Finishing MBlaze MC asm parser test cases
...
2. Parsing .word directive in MBlaze asm parser
3. Fixing hack where memory instructions reversed order of last two parameters
4. Fixing many improperly encoded instructions
5. Support parsing special instructions (MFS,MTS,etc.)
6. Removing unused functions from inst printer
llvm-svn: 118941
2010-11-12 23:30:17 +00:00
Devang Patel
53a40df6ea
Remove DW_AT_start_scope support. It is incomplete and superseeded by location entries support.
...
llvm-svn: 118940
2010-11-12 23:20:42 +00:00
Owen Anderson
0003a296ad
Attemt to provide correct encodings for Thumb2 binary operators.
...
llvm-svn: 118939
2010-11-12 23:18:11 +00:00
Evan Cheng
f478cf9685
Eliminate ARM::MOVi2pieces. Just use MOVi32imm and expand it to either movi+orr or movw+movt depending on the subtarget.
...
llvm-svn: 118938
2010-11-12 23:03:38 +00:00
Eric Christopher
49a66f7d71
Make this happen for ARM like x86. Don't entirely bail out when
...
an address is in a different block, get it into a register and go
from there.
llvm-svn: 118936
2010-11-12 22:52:32 +00:00
Evan Cheng
0fc8084a64
Add conditional mvn instructions.
...
llvm-svn: 118935
2010-11-12 22:42:47 +00:00
Ted Kremenek
e0f9382d64
CursorVisitor: Pull ObjCMessageExpr and explicit casts into data-recursion algorithm.
...
llvm-svn: 118934
2010-11-12 22:24:57 +00:00
Ted Kremenek
0d693a161c
CursorVisitor: migrate ObjCMessageExpr over to data-recursion algorithm.
...
llvm-svn: 118933
2010-11-12 22:24:55 +00:00
Johnny Chen
27e50be528
Implement TODO's of using expression command to set vaiables and to verify that
...
they are displayed correctly.
llvm-svn: 118930
2010-11-12 21:50:28 +00:00
Ted Kremenek
cfbbeda7dc
CursorVisitor: migrate UnresolvedMemberExpr and UnresolvedLookupExpr over to data-recursion algorithm.
...
llvm-svn: 118929
2010-11-12 21:34:16 +00:00
Ted Kremenek
e12bcf5717
CursorVisitor: migrate CompoundLiteralExpr over to data-recursion algorithm.
...
llvm-svn: 118928
2010-11-12 21:34:12 +00:00
Ted Kremenek
6a5df579e6
CursorVisitor: add data-recursion support for InitListExprs.
...
llvm-svn: 118927
2010-11-12 21:34:09 +00:00
Jim Grosbach
e09122b46b
Zap a copy/paste-o bit of dead code.
...
llvm-svn: 118926
2010-11-12 21:29:10 +00:00
Jim Grosbach
31a7234a47
Refactor to parameterize some ARM load/store encoding patterns. Preparatory
...
to splitting the load/store pre/post indexed instructions into [r, r] and
[r, imm] forms.
llvm-svn: 118925
2010-11-12 21:28:15 +00:00
Owen Anderson
8fdd172502
First stab at providing correct Thumb2 encodings, start with adc.
...
llvm-svn: 118924
2010-11-12 21:12:40 +00:00
Duncan Sands
246b71c596
Have GVN simplify instructions as it goes. For example, consider
...
"%z = %x and %y". If GVN can prove that %y equals %x, then it turns
this into "%z = %x and %x". With the new code, %z will be replaced
with %x everywhere (and then deleted). Previously %z would be value
numbered too, which is a waste of time. Also, while a clever value
numbering algorithm would give %z the same value number as %x, our
current one doesn't do so (at least I don't think it does). The new
logic has an essentially equivalent effect to what you would get if
%z was given the same value number as %x, i.e. it should make value
numbering smarter. While there, get hold of target data once at the
start rather than a gazillion times all over the place.
llvm-svn: 118923
2010-11-12 21:10:24 +00:00
Evan Cheng
2d59ee34f1
Add some missing isel predicates on def : pat patterns to avoid generating VFP vmla / vmls (they cause stalls). Disabling them in isel is properly not a right solution, I'll look into a proper solution next.
...
llvm-svn: 118922
2010-11-12 20:32:20 +00:00
Jim Grosbach
6bb1ae9d45
Kill more unused stuff.
...
llvm-svn: 118921
2010-11-12 19:27:45 +00:00
Benjamin Kramer
dcc7732f88
MCELF: Copy the symbol name only if we're going to modify it.
...
llvm-svn: 118920
2010-11-12 19:26:04 +00:00
Jim Grosbach
984ff7d17e
Remove unused class.
...
llvm-svn: 118919
2010-11-12 19:24:53 +00:00
Rafael Espindola
7ac506d431
Add --enable-docs. Patch by NAKAMURA Takumi.
...
llvm-svn: 118918
2010-11-12 19:24:06 +00:00
Dan Gohman
0284c5d0c7
When the definition of an address value is in a different block
...
from the user of the address, fall back to just using the
address in a register instead of bailing out of fast-isel
altogether.
llvm-svn: 118917
2010-11-12 19:14:00 +00:00
Chris Lattner
87cf7f787e
accept lret as an alias for lretl, fixing the reopened part of PR8592
...
llvm-svn: 118916
2010-11-12 18:54:56 +00:00
Benjamin Kramer
c78d86a2af
Reduce string thrashing.
...
llvm-svn: 118915
2010-11-12 18:45:23 +00:00
Rafael Espindola
c4f4b2e878
Remove what looks like dead code in the production of debug lines.
...
We only produce debug line information if we have seen a line directive, so
this code is dead. Also, if we want to be bug by bug compatible with
gas and sometimes produce "empty" .debug_line sections, this will
match the content produced by gas.
llvm-svn: 118914
2010-11-12 18:41:26 +00:00
Andrew Trick
6cbf6c1db5
typo (4th checkin for one fix)
...
llvm-svn: 118913
2010-11-12 18:36:03 +00:00
Ted Kremenek
cb035359e8
CursorVisitor: migrate 'DoStmt', 'ForStmt', and 'WhileStmt' over to data-recursion algorithm.
...
llvm-svn: 118912
2010-11-12 18:27:04 +00:00
Ted Kremenek
b50e311bad
CursorVisitor: use 'WLAddStmt' and 'WLAddDecl' for adding to data-recursion worklist.
...
llvm-svn: 118911
2010-11-12 18:27:01 +00:00
Ted Kremenek
3b19144e24
CursorVisitor: migrate 'IfStmt' over to data-recursive algorithm.
...
llvm-svn: 118910
2010-11-12 18:26:58 +00:00
Ted Kremenek
73227d792b
CursorVisitor: migrate handling of SwitchStmt and CaseStmt over to general data-recursion algorithm.
...
llvm-svn: 118909
2010-11-12 18:26:56 +00:00
Andrew Trick
b709ec6345
Emacs auto-fill bug.
...
llvm-svn: 118908
2010-11-12 18:17:46 +00:00
Jim Grosbach
3fd741191d
Fill in the default predication bits for ARM unconditional branch.
...
llvm-svn: 118907
2010-11-12 18:13:26 +00:00
Andrew Trick
ff5f8680d8
Test case for PR8287: SD scheduling time. Fixed in r118904.
...
llvm-svn: 118906
2010-11-12 17:57:22 +00:00
Jim Grosbach
0deb9c20c0
Encoding for ARM LDRSB instructions.
...
llvm-svn: 118905
2010-11-12 17:52:59 +00:00
Andrew Trick
116efac780
Fixes PR8287: SD scheduling time. The fix is a failsafe that prevents
...
catastrophic compilation time in the event of unreasonable LLVM
IR. Code quality is a separate issue--someone upstream needs to do a
better job of reducing to llvm.memcpy. If the situation can be reproduced with
any supported frontend, then it will be a separate bug.
llvm-svn: 118904
2010-11-12 17:50:46 +00:00
Chris Lattner
5b013b102d
implement PR8592: empirically "lretq" is a "lret" with a rex.w prefix.
...
llvm-svn: 118903
2010-11-12 17:41:20 +00:00
Bob Wilson
e6aeebb9d8
Generalize ASTContext::areCompatibleVectorTypes to handle new Neon vector types.
...
llvm-svn: 118901
2010-11-12 17:24:54 +00:00
Bob Wilson
6a6aaa1917
Increase VectorTypeBitfields::VecKind field from 2 to 3 bits.
...
With the addition of 2 enum values for Neon vectors, this field must now
hold 6 different values and so requires 3 bits. Make the NumElements field
one bit smaller to compensate.
llvm-svn: 118900
2010-11-12 17:24:52 +00:00
Bob Wilson
f58e8a4db7
Use ASTContext::getTypeInfo to find the vector element size.
...
llvm-svn: 118899
2010-11-12 17:24:49 +00:00
Bob Wilson
8470b33762
Add a separate NeonPolyVector kind to distinguish polynomial vector types.
...
Add support for mangling those types according to ARM's ABI.
llvm-svn: 118898
2010-11-12 17:24:46 +00:00
Bob Wilson
c155521a96
Add special-case mangling for Neon vector types.
...
llvm-svn: 118897
2010-11-12 17:24:43 +00:00
Chris Lattner
64634c36dd
tidy up.
...
llvm-svn: 118896
2010-11-12 17:24:29 +00:00
Rafael Espindola
de990b270d
gnu as support both % and @ before types, do the same.
...
llvm-svn: 118893
2010-11-12 15:47:08 +00:00
Benjamin Kramer
8c173cc364
Use a twine.
...
llvm-svn: 118892
2010-11-12 15:42:18 +00:00
Dan Gohman
970afd926f
Re-disable TBAA for now; it broke MultiSource/Applications/JM/lencod,
...
at least.
llvm-svn: 118890
2010-11-12 11:21:08 +00:00
Kalle Raiskila
0a9dd405a5
Fix memory access lowering on SPU, adding
...
support for the case where alignment<value size.
These cases were silently miscompiled before this patch.
Now they are overly verbose -especially storing is- and
any front-end should still avoid misaligned memory
accesses as much as possible. The bit juggling algorithm
added here probably has some room for improvement still.
llvm-svn: 118889
2010-11-12 10:14:03 +00:00
Eric Christopher
22d0492f34
Fix up a few more spots of addrmode2 (or not) changes that were
...
missed. Update some comments accordingly.
Fixes rdar://8652289
llvm-svn: 118888
2010-11-12 09:48:30 +00:00
John McCall
31f82720d0
Replace one hack with a different hack: strip out the ObjectType
...
parameters to the Transform*Type functions and instead call out
the specific cases where an object type and the unqualified lookup
results are important. Fixes an assert and failed compile on
a testcase from PR7248.
llvm-svn: 118887
2010-11-12 08:19:04 +00:00