Owen Anderson
c023151c9f
SCEVHandle is no more!
...
llvm-svn: 73906
2009-06-22 21:39:50 +00:00
Bob Wilson
6e81f12950
Use thumb2 for ARM architectures V6T2 and later. Fix a bug in checking
...
for "thumb" and add a check for V6T2.
llvm-svn: 73905
2009-06-22 21:28:22 +00:00
Dan Gohman
54899b84bc
Fix some typos that Duncan noticed.
...
llvm-svn: 73903
2009-06-22 21:10:22 +00:00
Evan Cheng
2814371831
It's coalescer, not coaleser.
...
llvm-svn: 73902
2009-06-22 21:09:17 +00:00
Bob Wilson
0c2c5f65e2
For Darwin on ARMv6 and newer, make register r9 available for use as a
...
caller-saved register.
llvm-svn: 73901
2009-06-22 21:01:46 +00:00
Dale Johannesen
e577db0efd
Fix memcpy expansion so it won't generate invalid
...
types for the target (I think). This was breaking
the PPC32 calling sequence.
llvm-svn: 73900
2009-06-22 20:59:07 +00:00
Evan Cheng
2410955c62
Fix another register coalescer crash: forgot to check if the instruction being updated has already been coalesced.
...
llvm-svn: 73898
2009-06-22 20:49:32 +00:00
Bruno Cardoso Lopes
4615b9cdf9
Use different functions to emit the string and symbol tables.
...
llvm-svn: 73895
2009-06-22 19:29:56 +00:00
Bruno Cardoso Lopes
7b196ba30e
Add more methods to gather target specific elf stuff
...
Support for .text relocations, implementing TargetELFWriter overloaded methods for x86/x86_64.
Use a map to track global values to their symbol table indexes
Code cleanup and small fixes
llvm-svn: 73894
2009-06-22 19:16:16 +00:00
Evan Cheng
b37e7e24d0
hasFP should return true if frame address is taken.
...
llvm-svn: 73893
2009-06-22 18:38:48 +00:00
Owen Anderson
83b6bbdcb4
Banish global state from ScalarEvolution! SCEV uniquing is now done by tables attached to the ScalarEvolution pass.
...
This also throws out the SCEV reference counting scheme, as the the SCEVs now have a lifetime controlled by the
ScalarEvolution pass.
Note that SCEVHandle is now a no-op, and will be remove in a future commit.
llvm-svn: 73892
2009-06-22 18:25:46 +00:00
Bob Wilson
dd1f69e6fb
Recognize and handle ARM v7 target triples for Darwin.
...
llvm-svn: 73889
2009-06-22 18:01:28 +00:00
Bob Wilson
c859e1c6bb
Fix llvm-gcc build for armv6t2 and later architectures. The hasV6T2Ops
...
predicate does not check if Thumb mode is enabled, and when in ARM mode
there are still some checks for constant-pool use that need to run.
llvm-svn: 73887
2009-06-22 17:29:13 +00:00
Dan Gohman
30b38faa05
Make use of getUMinFromMismatchedTypes when computing backedge-taken
...
counts for loops with multiple exits, replacing more conservative code
which only handled constants. This is derived from a patch by
Nick Lewycky.
This also fixes llc aborts in ClamAV and others, as
getUMinFromMismatchedTypes takes care of balancing the types before
working with them.
llvm-svn: 73884
2009-06-22 15:09:28 +00:00
Dan Gohman
cc245913e3
Add a getUMinFromMismatchedTypes helper function.
...
llvm-svn: 73883
2009-06-22 15:03:27 +00:00
Duncan Sands
5e54310d7d
Include cstdio to get EOF, needed with gcc-4.4.
...
llvm-svn: 73879
2009-06-22 06:59:32 +00:00
Chris Lattner
886ab50a50
process memory operands with a parenthesized expression for a displacement,
...
like "(4+5)(%eax)".
llvm-svn: 73878
2009-06-22 06:35:58 +00:00
Chris Lattner
5927443800
Implement full support for parsing primary expressions. We can now parse
...
all of health and voronoi (ignoring directives). We only get 409 lines into
176.gcc though because we don't have binary operators yet:
Parsing 176.gcc.llc.s:409: unexpected token in operand list
movsbl _arityvec+1(,%edi,8), %eax
^
llvm-svn: 73877
2009-06-22 06:32:03 +00:00
Chris Lattner
370f52dc85
implement parser support for '*' operands, as in "call *%eax".
...
llvm-svn: 73876
2009-06-22 06:02:13 +00:00
Chris Lattner
06378f9853
implement memory operand parsing.
...
llvm-svn: 73875
2009-06-22 05:51:26 +00:00
Dale Johannesen
bb07cd38e3
Testcase for (llvm-gcc) 73873. Usually
...
std::pair<double, float*>
is 16 bytes on darwin-powerpc, but not always.
See testcase for full weirdness.
llvm-svn: 73874
2009-06-22 04:47:32 +00:00
Dan Gohman
d65752db50
Factor out code for computing umin and smin for SCEV expressions into
...
helper functions. Based on a patch by Nick Lewycky.
llvm-svn: 73869
2009-06-22 03:18:45 +00:00
Chris Lattner
82084cf5a1
start implementing some simple operand parsing.
...
llvm-svn: 73867
2009-06-22 01:29:09 +00:00
Dan Gohman
db7860aa40
Teach ScalarEvolution how to analyze loops with multiple exit
...
blocks, and also exit blocks with multiple conditions (combined
with (bitwise) ands and ors). It's often infeasible to compute an
exact trip count in such cases, but a useful upper bound can often
be found.
llvm-svn: 73866
2009-06-22 00:31:57 +00:00
Dan Gohman
b2c544ddbd
Delete an unused variable.
...
llvm-svn: 73865
2009-06-22 00:19:17 +00:00
Dan Gohman
8426522d55
Fix this code to correctly handle loops with multiple exits. Until
...
now, this hasn't mattered, because ScalarEvolution hasn't been able
to compute trip counts for loops with multiple exits. But it will
soon.
llvm-svn: 73864
2009-06-22 00:15:15 +00:00
Dan Gohman
1a33c92bb2
Rename a variable for consistency with the ExitBlock vs ExitingBlock
...
terminology that LoopInfo uses.
llvm-svn: 73863
2009-06-21 23:48:38 +00:00
Dan Gohman
eb0a67278b
Fix ScalarEvolution's backedge-taken count computations to check for
...
overflow when computing a integer division to round up.
Thanks to Nick Lewycky for noticing this!
llvm-svn: 73862
2009-06-21 23:46:38 +00:00
Chris Lattner
dd95ab3ca9
rename SourceMgr::PrintError to PrintMessage.
...
llvm-svn: 73861
2009-06-21 21:22:11 +00:00
Chris Lattner
f896c01361
set up the top-level parsing loop.
...
llvm-svn: 73860
2009-06-21 20:54:55 +00:00
Chris Lattner
89e17d02b1
stub out parser for asm files. Change invariant on lexer to always
...
print its error message when it returns an asmtok::Error token.
Compute a proper error code for llvm-mc in 'lex' mode. Add new
-as-lex option to enable lexing mode (vs parsing mode).
llvm-svn: 73859
2009-06-21 20:16:42 +00:00
Chris Lattner
26507d1082
add string literals.
...
llvm-svn: 73858
2009-06-21 19:56:35 +00:00
Chris Lattner
9f3189ec41
hopefully fix the build on linux.
...
llvm-svn: 73857
2009-06-21 19:43:50 +00:00
Chris Lattner
9e30cac8cf
simplify some error recovery stuff.
...
llvm-svn: 73856
2009-06-21 19:22:49 +00:00
Chris Lattner
b6cfcfadd4
implement enough of a lexer to get through Olden/health/Output/health.llc.s
...
without errors.
llvm-svn: 73855
2009-06-21 19:21:25 +00:00
Rafael Espindola
373c6bdbc5
Fix PR4185.
...
Handle FpSET_ST0_80 being used when ST0 is still alive.
llvm-svn: 73850
2009-06-21 12:02:51 +00:00
Chris Lattner
f0c5d670e0
oh yeah, cmake needs to be told explicitly about new files :)
...
llvm-svn: 73849
2009-06-21 07:19:34 +00:00
Chris Lattner
7a7ac287db
some baby steps.
...
llvm-svn: 73848
2009-06-21 07:19:10 +00:00
Chris Lattner
8646a745ca
prune #include, fix warning.
...
llvm-svn: 73847
2009-06-21 05:33:06 +00:00
Chris Lattner
c94208cf9c
start wiring up support for asm parsing.
...
llvm-svn: 73846
2009-06-21 05:22:37 +00:00
Chris Lattner
c865ea76a6
move include searching logic from TGLexer to SourceMgr.
...
llvm-svn: 73845
2009-06-21 05:06:04 +00:00
Chris Lattner
5b9a2d79c0
Rename TGSourceMgr -> SourceMgr.
...
llvm-svn: 73844
2009-06-21 03:41:50 +00:00
Chris Lattner
4ff2620742
rename TGLoc -> SMLoc.
...
llvm-svn: 73843
2009-06-21 03:39:35 +00:00
Chris Lattner
4ed87b8790
move TGSourceMgr class out of TableGen into libsupport.
...
llvm-svn: 73842
2009-06-21 03:36:54 +00:00
Chris Lattner
06e180b758
simplify closing paren and (rip) printing.
...
llvm-svn: 73841
2009-06-21 02:22:53 +00:00
Chris Lattner
e358de060d
indentation fix
...
llvm-svn: 73840
2009-06-21 02:22:34 +00:00
Nick Lewycky
4020821885
Expand this test to handle more cases (remainder and shifts) of zero.
...
llvm-svn: 73839
2009-06-21 01:56:41 +00:00
Chris Lattner
a01650186d
fit in 80 cols
...
llvm-svn: 73838
2009-06-21 01:52:00 +00:00
Chris Lattner
481746a193
remove #if 0 code
...
llvm-svn: 73837
2009-06-21 01:48:49 +00:00
Chris Lattner
5ef06d833d
cosmetic changes.
...
llvm-svn: 73836
2009-06-21 01:27:55 +00:00