Sanjiv Gupta
da2298ee21
Added a function to clone locals of a function.( which for pic16 are globals
...
with mangled names).
llvm-svn: 96465
2010-02-17 06:48:50 +00:00
Chris Lattner
143e2b6181
improve comments, the matcher is now feature complete, on to codegen.
...
llvm-svn: 96464
2010-02-17 06:47:35 +00:00
Sanjiv Gupta
581ae3d134
Removed header files from .h by adding forward decls.
...
Renamed PIC16FrameOverlay namespace to PIC16OVERLAY.
Renamed PIC16FrameOverlay class to PIC16Overlay.
llvm-svn: 96463
2010-02-17 06:46:23 +00:00
Johnny Chen
3107d9d344
Added BFI for disassembly only.
...
A8.6.18 BFI - Bitfield insert (Encoding A1)
llvm-svn: 96462
2010-02-17 06:31:48 +00:00
Chris Lattner
955ce23e27
sink special case "cannotyetselect" for intrinsics out of the
...
tblgen splatted code into the implementation.
llvm-svn: 96460
2010-02-17 06:28:22 +00:00
Chris Lattner
8f3afbc621
Emulate the current isel's "IsChainCompatible" logic for now.
...
I'd like to eventually rip it out, but for now producing the
same selections as the old matcher is more important.
llvm-svn: 96458
2010-02-17 06:23:39 +00:00
Chris Lattner
15eb8504cd
properly record chain inputs to complex patterns,
...
resolving a fixme.
llvm-svn: 96457
2010-02-17 06:08:25 +00:00
Chris Lattner
735a4efeff
rename and document some arguments so I don't have to keep
...
reverse engineering what they are.
llvm-svn: 96456
2010-02-17 06:07:47 +00:00
Anton Korobeynikov
5a321b42ea
Use pointer-wide encoding for LSDA and FDE on Darwin.
...
Hopefully, this will fix the remaining issues seen there.
llvm-svn: 96454
2010-02-17 05:53:11 +00:00
Chris Lattner
abb5e906a7
simplify IsChainCompatible codegen, add comments. no
...
functionality change.
llvm-svn: 96453
2010-02-17 05:35:28 +00:00
Lang Hames
b477072a21
Removed an early out which was causing the PBQP allocator to not compute live-in sets or run the rewriter.
...
llvm-svn: 96450
2010-02-17 03:42:51 +00:00
Dan Gohman
1cc421b590
Fix SCEVExpander's existing PHI reuse checking to recognize the
...
case where there are loop-invariant instructions somehow left
inside the loop, and in a position where they won't dominate
the IV increment position.
llvm-svn: 96448
2010-02-17 02:39:31 +00:00
Devang Patel
0f421b8fc5
Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope.
...
llvm-svn: 96445
2010-02-17 02:20:34 +00:00
Chris Lattner
44d2031ca8
Prep work to handle input chains of matched patterns and checking for
...
'ischaincompatible' when a pattern has more than one input chain. Need
to do some commenting and cleanup now that I understand how this works.
llvm-svn: 96443
2010-02-17 02:16:19 +00:00
Chris Lattner
e93c85eb5e
daniel remembered why this was needed.
...
llvm-svn: 96440
2010-02-17 01:55:54 +00:00
Chris Lattner
ff307a48c2
add a comment explaining why darwin/i386 uses ## as a comment.
...
It's not clear why this is really required, but it was explicitly
added in r48808 with no real explanation or rdar #.
llvm-svn: 96438
2010-02-17 01:38:01 +00:00
Chris Lattner
ac9295346b
record input chains.
...
llvm-svn: 96437
2010-02-17 01:34:15 +00:00
Chris Lattner
a6df2a60e5
prefix captured value names with $ so they look like
...
variables. Use the fancy OpNo variable instead of i,
which has the right index including chains.
llvm-svn: 96436
2010-02-17 01:27:29 +00:00
Sanjiv Gupta
6e98127ab8
Initial implementation of PIC16 Cloner pass.
...
This pass is supposed to be run on the linked .bc module.
It traveses the module call graph twice. Once starting from the main function
and marking each reached function as "ML". Again, starting from the ISR
and cloning any reachable function that was marked as "ML". After cloning
the function, it remaps all the call sites in IL functions to call the
cloned functions.
Currently only marking is being done.
llvm-svn: 96435
2010-02-17 01:11:53 +00:00
Dan Gohman
3cb7dc5912
Don't check for comments, which vary between subtargets.
...
llvm-svn: 96434
2010-02-17 01:08:57 +00:00
Chris Lattner
ab430d225c
improve comments on OPC_Record to say what we're recording a node.
...
llvm-svn: 96433
2010-02-17 01:03:09 +00:00
Dan Gohman
2a4208c74e
Fold bswap(undef) to undef.
...
llvm-svn: 96432
2010-02-17 00:54:58 +00:00
Dan Gohman
82f46afcdd
Delete some unneeded casts.
...
llvm-svn: 96429
2010-02-17 00:42:19 +00:00
Dan Gohman
493a1fcbe0
Don't attempt to divide INT_MIN by -1; consider such cases to
...
have overflowed.
llvm-svn: 96428
2010-02-17 00:41:53 +00:00
Chris Lattner
9625fb062a
make the new isel's interpreter loop call the generated
...
CheckComplexPattern function. Though it is logically const,
I don't have the fortitude to clean up all the targets now,
and it not being const doesn't block anything.
llvm-svn: 96426
2010-02-17 00:41:34 +00:00
Chris Lattner
fdd452441a
improve comments in generated matcher a bit.
...
llvm-svn: 96422
2010-02-17 00:39:26 +00:00
Dan Gohman
d35c563d80
Make the operand and format specifier match, and print all
...
64 bits, fixing a variety of problems.
llvm-svn: 96421
2010-02-17 00:37:20 +00:00
Chris Lattner
1f818d2e25
make the new isel generator plop out a CheckComplexPattern function
...
for evaluating complex patterns. Some cleanup has to happen before
this can be used though.
llvm-svn: 96419
2010-02-17 00:31:50 +00:00
Bob Wilson
532656cffc
Wrap lines to 80 columns and generally try to clean up whitespace and
...
indentation. No functional changes.
llvm-svn: 96418
2010-02-17 00:31:29 +00:00
Chris Lattner
c87f9d6d1a
roundss is an sse 4 thing, fix the test on non-sse41 builders
...
like llvm-gcc-x86_64-darwin10-selfhost
llvm-svn: 96417
2010-02-17 00:29:06 +00:00
Chris Lattner
ebf80812e3
fix inverted condition.
...
llvm-svn: 96416
2010-02-17 00:11:30 +00:00
Dale Johannesen
d147b9a4d4
Make g5 target explicit; scheduling affects register choice.
...
llvm-svn: 96413
2010-02-16 23:25:23 +00:00
Chris Lattner
3499eaaac1
complex patterns don't get 'record' nodes, they implicitly
...
record all their results.
llvm-svn: 96412
2010-02-16 23:16:25 +00:00
Chris Lattner
c89e98d63b
clean up some code, eliminate NodeIsComplexPattern, which
...
does the same thing as getComplexPatternInfo.
llvm-svn: 96411
2010-02-16 23:13:59 +00:00
Bill Wendling
964b01232c
Make error statement more personal.
...
llvm-svn: 96410
2010-02-16 22:47:14 +00:00
Chris Lattner
617c3a5c69
fix indentation
...
llvm-svn: 96409
2010-02-16 22:38:31 +00:00
Chris Lattner
0d35c68d5c
fix rdar://7653908, a crash on a case where we would fold a load
...
into a roundss intrinsic, producing a cyclic dag. The root cause
of this is badness handling ComplexPattern nodes in the old dagisel
that I noticed through inspection. Eliminate a copy of the of the
code that handled ComplexPatterns by making EmitChildMatchCode call
into EmitMatchCode.
llvm-svn: 96408
2010-02-16 22:35:06 +00:00
Dale Johannesen
60d48aef7b
Adjust register numbers in tests to compensate for the
...
new lack of R2.
llvm-svn: 96407
2010-02-16 22:31:31 +00:00
Chris Lattner
008f62bfa2
filecheckize
...
llvm-svn: 96404
2010-02-16 22:13:43 +00:00
Bob Wilson
ed0eab5843
Handle tGPR register class in a few more places. This fixes some llvm-gcc
...
build failures due to my fix for pr6111.
llvm-svn: 96402
2010-02-16 22:01:59 +00:00
Johnny Chen
7171461638
Add SMC (Secure Monitor Call) system instruction for disassembly only.
...
llvm-svn: 96401
2010-02-16 21:59:54 +00:00
Dale Johannesen
f31a06506f
Really reserve R2 on PPC Darwin. PR 6314.
...
llvm-svn: 96399
2010-02-16 21:53:27 +00:00
Devang Patel
bebe8e55dc
Use line and column number to distinguish two lexical blocks at the same level.
...
llvm-svn: 96395
2010-02-16 21:39:34 +00:00
Jim Grosbach
2acf602672
80 column cleanup
...
llvm-svn: 96393
2010-02-16 21:23:02 +00:00
Devang Patel
1b865d88f9
New testcase.
...
llvm-svn: 96391
2010-02-16 21:16:08 +00:00
Evan Cheng
ee44d6a752
Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).
...
If there exists a use of a build_vector that's the bitwise complement of the mask,
then transform the node to
(and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)).
Since this transformation is only useful when 1) the given build_vector will
become a load from constpool, and 2) (and (xor x -1), y) matches to a single
instruction, I decided this is appropriate as a x86 specific transformation.
rdar://7323335
llvm-svn: 96389
2010-02-16 21:09:44 +00:00
Jim Grosbach
0c678d7b17
Remove trailing whitespace
...
llvm-svn: 96388
2010-02-16 21:07:46 +00:00
Bob Wilson
86dded571f
Rename SuccessorNumber to GetSuccessorNumber.
...
llvm-svn: 96387
2010-02-16 21:06:42 +00:00
David Greene
c10133139e
Add support for emitting non-temporal stores for DAGs marked
...
non-temporal. Fix from r96241 for botched encoding of MOVNTDQ.
Add documentation for !nontemporal metadata.
Add a simpler movnt testcase.
llvm-svn: 96386
2010-02-16 20:50:18 +00:00
Bob Wilson
7bb549dc8e
Testcase for critical edge splitting with load PRE.
...
llvm-svn: 96385
2010-02-16 20:48:55 +00:00