Owen Anderson
200aa6d89b
Revert r73923, which broke clang.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73957 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 16:36:10 +00:00
Sanjiv Gupta
ae99227ef9
Fold the add (ptr, offset) into ptr[offset] only if the offset is small enough. movwi and moviw allow value of 5-bits only (i.e. 32).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73953 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 07:10:19 +00:00
Chris Lattner
8dfbe6c853
implement a trivial binary expression parser, we can now parse all of 176.gcc.llc.s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73950 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 05:57:07 +00:00
Evan Cheng
e07715cfba
Minor reorg.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 05:25:29 +00:00
Evan Cheng
3850a6ae9d
Replace isTwoAddress with operand constraint.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73947 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 05:23:49 +00:00
Bruno Cardoso Lopes
e39493eb1b
Use a default alignment for data and bss sections.
...
Only pad when the section size > 0 and move the code that deals
with globals initializers to a place we know for sure the global
is initialized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 04:39:27 +00:00
Chris Lattner
bcd0b8d2ef
get a definition of strull on windows, thanks to Howard Su.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73929 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 00:24:36 +00:00
Owen Anderson
606e9eb6e6
Guard the layout info object.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 00:21:15 +00:00
Owen Anderson
61ffc0c7fd
Guard the plugin loader.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73925 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23 00:02:39 +00:00
Owen Anderson
af2e2b54b6
Add guards around timer groups, which can be shared.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73923 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 23:37:06 +00:00
Dan Gohman
91380b7239
Fix a bug in the trip-count computation with And/Or. If either of the
...
sides is CouldNotCompute, the resulting exact count must be CouldNotCompute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73920 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 23:28:56 +00:00
Bob Wilson
5bafff36c7
Add support for ARM's Advanced SIMD (NEON) instruction set.
...
This is still a work in progress but most of the NEON instruction set
is supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73919 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 23:27:02 +00:00
Owen Anderson
5de83afcdc
Guard the statistics table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73916 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 23:08:27 +00:00
Owen Anderson
521db56182
Guard the global annotation tables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73913 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 22:44:15 +00:00
Owen Anderson
c226570bde
Add locking around the external function lookup table for the interpreter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 22:30:56 +00:00
Owen Anderson
e7b6118a51
Remove unneeded #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73911 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 22:09:07 +00:00
Dan Gohman
469f3cdc13
Fix a few minor issues that were exposed by the removal of SCEVHandle.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73910 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 22:08:45 +00:00
Bob Wilson
1c76d0ee5c
Add explicit types for shift count constants. This is in preparation for
...
another change that makes the types ambiguous (at least as far as tablegen
is concerned).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 22:08:29 +00:00
Dan Gohman
bd5ce52740
Fix llvm::ComputeNumSignBits to handle pointer types
...
conservatively correctly, instead of aborting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 22:02:32 +00:00
Owen Anderson
753ad615f9
Remove the parent pointer from SCEV, since it did not end up being needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 21:57:23 +00:00
Owen Anderson
372b46cad9
SCEVHandle is no more!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73906 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 21:39:50 +00:00
Bob Wilson
9170ab6685
Use thumb2 for ARM architectures V6T2 and later. Fix a bug in checking
...
for "thumb" and add a check for V6T2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73905 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 21:28:22 +00:00
Dan Gohman
d32f5bf22d
Fix some typos that Duncan noticed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 21:10:22 +00:00
Evan Cheng
524961e57f
It's coalescer, not coaleser.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73902 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 21:09:17 +00:00
Bob Wilson
54fc124d72
For Darwin on ARMv6 and newer, make register r9 available for use as a
...
caller-saved register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73901 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 21:01:46 +00:00
Dale Johannesen
08bc98e3cc
Fix memcpy expansion so it won't generate invalid
...
types for the target (I think). This was breaking
the PPC32 calling sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73900 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 20:59:07 +00:00
Evan Cheng
81909b7423
Fix another register coalescer crash: forgot to check if the instruction being updated has already been coalesced.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 20:49:32 +00:00
Bruno Cardoso Lopes
c236a345c7
Use different functions to emit the string and symbol tables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73895 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 19:29:56 +00:00
Bruno Cardoso Lopes
0d3193ef3c
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 19:16:16 +00:00
Evan Cheng
8dcbbdd00e
hasFP should return true if frame address is taken.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73893 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 18:38:48 +00:00
Owen Anderson
08367b6163
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73892 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 18:25:46 +00:00
Bob Wilson
75d6ffd53f
Recognize and handle ARM v7 target triples for Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 18:01:28 +00:00
Bob Wilson
e64e3cf9ad
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73887 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 17:29:13 +00:00
Dan Gohman
60e9b0708a
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73884 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 15:09:28 +00:00
Dan Gohman
c9759e80f4
Add a getUMinFromMismatchedTypes helper function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 15:03:27 +00:00
Duncan Sands
66b9f29df2
Include cstdio to get EOF, needed with gcc-4.4.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73879 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:59:32 +00:00
Chris Lattner
7031806fe2
process memory operands with a parenthesized expression for a displacement,
...
like "(4+5)(%eax)".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:35:58 +00:00
Chris Lattner
74ec1a3b11
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
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73877 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:32:03 +00:00
Chris Lattner
be9c23fef4
implement parser support for '*' operands, as in "call *%eax".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 06:02:13 +00:00
Chris Lattner
c41938303b
implement memory operand parsing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 05:51:26 +00:00
Dale Johannesen
023b21895f
Testcase for (llvm-gcc) 73873. Usually
...
std::pair<double, float*>
is 16 bytes on darwin-powerpc, but not always.
See testcase for full weirdness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73874 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 04:47:32 +00:00
Dan Gohman
f9a9a9928c
Factor out code for computing umin and smin for SCEV expressions into
...
helper functions. Based on a patch by Nick Lewycky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 03:18:45 +00:00
Chris Lattner
2cf5f14f20
start implementing some simple operand parsing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73867 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 01:29:09 +00:00
Dan Gohman
a334aa7a10
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73866 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 00:31:57 +00:00
Dan Gohman
743ab498d8
Delete an unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73865 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 00:19:17 +00:00
Dan Gohman
03ad6982c4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73864 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-22 00:15:15 +00:00
Dan Gohman
5392dce881
Rename a variable for consistency with the ExitBlock vs ExitingBlock
...
terminology that LoopInfo uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73863 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 23:48:38 +00:00
Dan Gohman
51f53b7f5a
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73862 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 23:46:38 +00:00
Chris Lattner
14ee48a5ba
rename SourceMgr::PrintError to PrintMessage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73861 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 21:22:11 +00:00
Chris Lattner
b0789ed5a4
set up the top-level parsing loop.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73860 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-21 20:54:55 +00:00