Benjamin Kramer
2d266249a6
PR10267: Don't combine an equality compare with an AND into an inequality compare when the AND has more than one use.
...
This can pessimize code, inequalities are generally more expensive.
llvm-svn: 134379
2011-07-04 20:16:36 +00:00
Roman Divacky
08f7d5cf91
Remove accidentaly left node from previous iteration of the patch.
...
Noticed by Benjamin Kramer!
llvm-svn: 134376
2011-07-04 15:42:45 +00:00
Rafael Espindola
29113212a6
Move early tail duplication earlier.
...
This fixes the issue noted in PR10251 where early tail dup of bbs with
indirectbr would cause a bb to be duplicated into a loop preheader
and then into its predecessors, creating phi nodes with identical
operands just before register allocation.
This helps with jsinterp.o size (__TEXT goes from 163568 to 126656)
and a bit with performance 1.005x faster on sunspider (jits still enabled).
The result on webkit with the jit disabled is more significant: 1.021x faster.
llvm-svn: 134372
2011-07-04 04:54:22 +00:00
Rafael Espindola
962773db64
Move most of the pre BB code to TailDuplicateAndUpdate. Change the
...
HasIndirectbr variable to be just that. No functionality change.
llvm-svn: 134371
2011-07-04 01:21:42 +00:00
Rafael Espindola
ce4f4ff705
Reduce indentation and fix the count of how many PHIs we have inserted.
...
llvm-svn: 134370
2011-07-04 00:13:36 +00:00
Jakob Stoklund Olesen
9950d41b39
Fix PR10244.
...
A split point inserted in a block with a landing pad successor may be
hoisted above the call to ensure that it dominates all successors. The
code that handles the rest of the basic block must take this into
account.
I am not including a test case, it would be very fragile. PR10244 comes
from building clang with exceptions enabled.
llvm-svn: 134369
2011-07-04 00:05:28 +00:00
Roman Divacky
eae7daa59b
Make the i64 and f64 be 64bit ABI aligned in the target description.
...
This is what both the ABI and clang says.
llvm-svn: 134367
2011-07-03 16:24:07 +00:00
NAKAMURA Takumi
c0837d703b
test/CodeGen/X86/lsr-nonaffine.ll: Relax expressions for Win64 CC to appease Win32 hosts.
...
llvm-svn: 134366
2011-07-03 09:26:14 +00:00
Rafael Espindola
f04e6b50ca
Fix an easy fixme.
...
llvm-svn: 134364
2011-07-03 05:26:42 +00:00
Chandler Carruth
e07bb36a9e
FileCheck-ize another test. Reduces the llc invocations from 8 to 1, and
...
makes one of the tests actually mean something (as the string 'add' will
always appear in the output of this file).
llvm-svn: 134358
2011-07-02 21:34:52 +00:00
Chandler Carruth
941beb26e9
Avoid writing to an arbitrary filename during the test run by writing to
...
a file descriptor.
llvm-svn: 134355
2011-07-02 20:43:18 +00:00
Chandler Carruth
78b12b3ed4
FileCheck-ize another X86 test, making it more precisely verify the
...
desired result based on the comments in the file.
llvm-svn: 134354
2011-07-02 20:43:16 +00:00
Chandler Carruth
1de252c70a
Quote two greps which contain parentheses.
...
llvm-svn: 134353
2011-07-02 20:43:13 +00:00
Chandler Carruth
1926e141f1
FileCheck-ize and simplify RUN lines.
...
llvm-svn: 134352
2011-07-02 20:43:11 +00:00
Chandler Carruth
5de1d825e4
FileCheck-ize
...
llvm-svn: 134351
2011-07-02 20:43:08 +00:00
Chandler Carruth
01e8f9314e
FileCheck-ize and tighten up assertions to only check the relevant sections.
...
llvm-svn: 134350
2011-07-02 20:43:04 +00:00
Chandler Carruth
500b05b1bb
FileCheck-ize and cleanup IR.
...
llvm-svn: 134349
2011-07-02 20:43:01 +00:00
Chandler Carruth
c674fb38ef
FileCheck-ize
...
llvm-svn: 134348
2011-07-02 20:42:59 +00:00
Chandler Carruth
341ed5f0a0
Remove a grep that is already checked with FileCheck.
...
llvm-svn: 134346
2011-07-02 20:42:56 +00:00
Chandler Carruth
88e183829b
FileCheck-ize
...
llvm-svn: 134345
2011-07-02 20:42:53 +00:00
Chandler Carruth
7a0f51e003
FileCheck-ize and modernize IR.
...
llvm-svn: 134344
2011-07-02 20:42:50 +00:00
Chandler Carruth
4af34fe339
FileCheck-ize and simplify RUNs.
...
llvm-svn: 134343
2011-07-02 20:42:48 +00:00
Chandler Carruth
9e114fc3ee
FileCheck-ize and modernize the RUN line.
...
llvm-svn: 134342
2011-07-02 20:42:44 +00:00
Chandler Carruth
df1690a113
FileCheck-ize, tightening checks and avoiding a temporary file.
...
llvm-svn: 134341
2011-07-02 20:42:42 +00:00
Chandler Carruth
a5b1de166b
FileCheck-ize, tightening checks and avoiding a temporary file.
...
llvm-svn: 134340
2011-07-02 20:42:39 +00:00
Chandler Carruth
c041ee0766
FileCheck-ize
...
llvm-svn: 134339
2011-07-02 20:42:36 +00:00
Chandler Carruth
4f82b948fd
FileCheck-ize
...
llvm-svn: 134338
2011-07-02 20:42:33 +00:00
Chandler Carruth
e344d9c676
FileCheck-ize a test, avoiding a temporary file.
...
llvm-svn: 134337
2011-07-02 20:42:31 +00:00
Chandler Carruth
d939fba46d
FileCheck-ize and simplify this test.
...
llvm-svn: 134336
2011-07-02 20:42:28 +00:00
Chandler Carruth
b870175dd5
FileCheck-ize
...
llvm-svn: 134335
2011-07-02 20:42:25 +00:00
Chandler Carruth
d98a57cc5a
FileCheck-ize another codegen test.
...
llvm-svn: 134334
2011-07-02 20:42:22 +00:00
Chandler Carruth
4c7e28777b
Partially FileCheck-ize a test to remove a weird quoting situation.
...
llvm-svn: 134333
2011-07-02 20:42:20 +00:00
Chandler Carruth
0d1da937eb
FileCheck-ize another test, and upgrade its syntax a bit.
...
llvm-svn: 134332
2011-07-02 20:42:17 +00:00
Chandler Carruth
4fd8502d12
FileCheck-ize another codegen test, tightening it up.
...
llvm-svn: 134331
2011-07-02 20:42:14 +00:00
Chandler Carruth
b74aff3ce8
FileCheck-ize another test, making it much more precise for testing the
...
individual cases, while hard coding less about registers in use.
llvm-svn: 134330
2011-07-02 20:42:11 +00:00
Chandler Carruth
70fa55f478
FileCheck-ize another test. This one is more clear and runs fewer
...
commands as a result.
llvm-svn: 134329
2011-07-02 20:42:08 +00:00
Chandler Carruth
72358a4bf8
FileCheck-ize a test, no functionality changed.
...
llvm-svn: 134328
2011-07-02 20:42:06 +00:00
Jordy Rose
6f7044e2b9
Use subprocess.Popen instead of popen2 to stop a deprecation warning when running lit on OS X
...
llvm-svn: 134324
2011-07-02 17:28:55 +00:00
Duncan Sands
da72617832
Remove unused array.
...
llvm-svn: 134323
2011-07-02 16:36:24 +00:00
Duncan Sands
3eb91b3dfd
Revert previous commit. It seems that whether casting to void
...
is valid or not depends on which system you build.
llvm-svn: 134321
2011-07-02 13:14:22 +00:00
Duncan Sands
938be63a66
Supress gcc-4.5 warning about the result not being used.
...
llvm-svn: 134319
2011-07-02 13:06:23 +00:00
Duncan Sands
c1389003b7
Remove unused constant.
...
llvm-svn: 134318
2011-07-02 13:05:02 +00:00
Rafael Espindola
cf67208057
Use getVNInfoAt.
...
llvm-svn: 134312
2011-07-02 07:50:27 +00:00
Jakob Stoklund Olesen
4d72701c7e
Consistent diagnostic capitalization and redundant context elimination.
...
llvm-svn: 134311
2011-07-02 07:23:40 +00:00
Jakob Stoklund Olesen
b94d989634
Better diagnostics when inline asm fails to allocate.
...
asm.c:2:7: error: ran out of registers during register allocation
asm(""::"r"(0), "r"(1), "r"(2), "r"(3), "r"(4), "r"(5), "r"(6), "r"(7), "r"(8), "r"(9));
^
llvm-svn: 134310
2011-07-02 07:17:37 +00:00
Rafael Espindola
a8c92aa8ef
Check the VN of the src register at the two copies, not just the
...
register number.
llvm-svn: 134309
2011-07-02 05:34:02 +00:00
Eric Christopher
9689f96b1e
Be less specific about register allocation ordering.
...
llvm-svn: 134308
2011-07-02 04:06:41 +00:00
Jakob Stoklund Olesen
c19c47697f
Include a source location when complaining about bad inline assembly.
...
Add a MI->emitError() method that the backend can use to report errors
related to inline assembly. Call it from X86FloatingPoint.cpp when the
constraints are wrong.
This enables proper clang diagnostics from the backend:
$ clang -c pr30848.c
pr30848.c:5:12: error: Inline asm output regs must be last on the x87 stack
__asm__ ("" : "=u" (d)); /* { dg-error "output regs" } */
^
1 error generated.
llvm-svn: 134307
2011-07-02 03:53:34 +00:00
Andrew Trick
ac38d56661
indvars -disable-iv-rewrite: bug fix involving weird geps and related cleanup.
...
llvm-svn: 134306
2011-07-02 02:34:25 +00:00
Jakob Stoklund Olesen
60871c3ee0
Use a new strategy for preventing eviction loops in RAGreedy.
...
Every live range is assigned a cascade number the first time it is
involved in an eviction. As the evictor, it gets a new cascade number.
Every evictee is assigned the same cascade number as the evictor.
Eviction is prohibited if the evictor has a lower assigned cascade
number than the evictee.
This means that assigned cascade numbers are monotonically increasing
with every eviction, yet they are bounded by NextCascade which can only
be incremented by new live ranges. Thus, infinite loops cannot happen,
but eviction cascades can still be triggered by new live ranges as we
want.
Thanks to Andy for explaining this to me.
llvm-svn: 134303
2011-07-02 01:37:09 +00:00