Dan Gohman
bd231d2e7b
Simplify some code. hasComputableLoopEvolution is overkill in this case.
...
No functionality change.
llvm-svn: 64530
2009-02-14 02:25:19 +00:00
Dale Johannesen
8641d45bc4
Testcase for llvm-gcc 64510.
...
llvm-svn: 64511
2009-02-14 00:19:28 +00:00
Evan Cheng
9041a71923
Teach x86 target -soft-float.
...
llvm-svn: 64496
2009-02-13 22:36:38 +00:00
Dan Gohman
f01c6af944
In CodeGenPrepare's debug output, use WriteAsOperand instead of
...
printing getName(), so that unnamed values are printed correctly.
llvm-svn: 64468
2009-02-13 17:45:12 +00:00
Dan Gohman
484ce19297
Complete the sentance in this comment. I have reservations
...
about the code it describes, but at least now the comment
is right.
llvm-svn: 64465
2009-02-13 17:36:42 +00:00
Duncan Sands
9335c884e3
Correct a comment: since AccessArguments is now
...
being used for atomic intrinsics, it seems the
access may be volatile. No code was exploiting
the original non-volatile definition, so only
the comment needs changing.
llvm-svn: 64464
2009-02-13 17:36:13 +00:00
Duncan Sands
5ce9ceee04
If a function only reads memory, then we know that...
...
it only reads memory! The other change has no
functional effect, it just seems more logical to
go in order of decreasing knowledge.
llvm-svn: 64463
2009-02-13 17:32:26 +00:00
Nick Lewycky
0a8e13fd8b
Mark strto* as readonly when the endptr is null.
...
llvm-svn: 64460
2009-02-13 17:08:33 +00:00
Nick Lewycky
7ec551cfad
On strtod and friends, mark 'endptr' nocapture in the function prototype, and
...
mark the first argument nocapture if endptr=NULL for each particular call.
llvm-svn: 64453
2009-02-13 15:31:46 +00:00
Duncan Sands
ed1ea7cfe8
Reapply r64301. These uses of "inline" can cause strange
...
link-time failures when building with optimization. Just
get rid of them.
llvm-svn: 64449
2009-02-13 09:42:34 +00:00
Evan Cheng
ec9d3c889f
Switch from new[] + delete[] to malloc + free since llvm does not catch C++ exceptions.
...
llvm-svn: 64448
2009-02-13 08:24:55 +00:00
Evan Cheng
643730a194
If new[] fails, return 0 rather then trying to dereference a null pointer.
...
llvm-svn: 64444
2009-02-13 07:54:34 +00:00
Nick Lewycky
260e80bd90
Reapply r64300:
...
Make sure the SCC pass manager initializes any contained
function pass managers. Without this, simplify-libcalls
would add nocapture attributes when run on its own, but
not when run as part of -std-compile-opts or similar.
llvm-svn: 64443
2009-02-13 07:15:53 +00:00
Nick Lewycky
f6c8dc0825
BasicAA was making the assumption that a local allocation which hadn't escaped
...
couldn't ever be the return of call instruction. However, it's quite possible
that said local allocation is itself the return of a function call. That's
what malloc and calloc are for, actually.
llvm-svn: 64442
2009-02-13 07:06:27 +00:00
Dan Gohman
aec5be6b01
Fix the code that checked if a SCEVAddRecExpr Start contains an
...
addrec in a different loop to check the value being added to
the accumulated Start value, not the Start value before it has
the new value added to it. This prevents LSR from going crazy
on the included testcase. Dale, please review.
llvm-svn: 64440
2009-02-13 03:58:31 +00:00
Dale Johannesen
715b86151d
Remove non-DebugLoc versions of BuildMI.
...
"I got blisters on my fingers."
llvm-svn: 64439
2009-02-13 02:35:20 +00:00
Dale Johannesen
329e01b91b
Remove non-DebugLoc versions of BuildMI from IA64, Mips.
...
llvm-svn: 64438
2009-02-13 02:34:39 +00:00
Dale Johannesen
560b03bbcd
Remove non-DebugLoc versions of BuildMI from X86.
...
There were some that might even matter in X86FastISel.
llvm-svn: 64437
2009-02-13 02:33:27 +00:00
Dale Johannesen
0336a2cfd0
missed file
...
llvm-svn: 64436
2009-02-13 02:32:04 +00:00
Dale Johannesen
bf9e91b0b9
Remove non-DebugLoc versions of buildMI from Sparc.
...
llvm-svn: 64435
2009-02-13 02:31:35 +00:00
Dale Johannesen
a0069695df
Remove non-DebugLoc versions of BuildMI from Alpha and Cell.
...
llvm-svn: 64433
2009-02-13 02:30:42 +00:00
Dale Johannesen
9c596981ed
Remove refs to non-DebugLoc version of BuildMI from XCore, PIC16.
...
llvm-svn: 64432
2009-02-13 02:29:03 +00:00
Dale Johannesen
428a8fcc3d
Remove refs to non-DebugLoc version of BuildMI from PowerPC.
...
llvm-svn: 64431
2009-02-13 02:27:39 +00:00
Dale Johannesen
986cfc3338
and one more file
...
llvm-svn: 64430
2009-02-13 02:26:21 +00:00
Dale Johannesen
a91dca7b45
Remove refs to non-DebugLoc versions of BuildMI from ARM.
...
llvm-svn: 64429
2009-02-13 02:25:56 +00:00
Bill Wendling
40e4b271af
Revert this. It was breaking stuff.
...
llvm-svn: 64428
2009-02-13 02:16:35 +00:00
Bill Wendling
83b6edd760
Turn off the old way of handling debug information in the code generator. Use
...
the new way, where all of the information is passed on SDNodes and machine
instructions.
llvm-svn: 64427
2009-02-13 02:01:04 +00:00
Dan Gohman
3ade7d2346
Fix LSR's IV sorting function to explicitly sort by bitwidth
...
after sorting by stride value. This prevents it from missing
IV reuse opportunities in a host-sensitive manner.
llvm-svn: 64415
2009-02-13 00:26:43 +00:00
Mike Stump
780d14738b
Avoid order files for now, as they aren't supported in 3.79.
...
llvm-svn: 64412
2009-02-12 23:45:11 +00:00
Dale Johannesen
df5d8dfbcb
Check in missing file.
...
llvm-svn: 64410
2009-02-12 23:24:44 +00:00
Dale Johannesen
5a21722625
Eliminate a couple of non-DebugLoc BuildMI variants.
...
Modify callers.
llvm-svn: 64409
2009-02-12 23:08:38 +00:00
Dan Gohman
02d4601fcf
Teach IndVarSimplify to optimize code using the C "int" type for
...
loop induction on LP64 targets. When the induction variable is
used in addressing, IndVars now is usually able to inserst a
64-bit induction variable and eliminates the sign-extending cast.
This is also useful for code using C "short" types for
induction variables on targets with 32-bit addressing.
Inserting a wider induction variable is easy; the tricky part is
determining when trunc(sext(i)) expressions are no-ops. This
requires range analysis of the loop trip count. A common case is
when the original loop iteration starts at 0 and exits when the
induction variable is signed-less-than a fixed value; this case
is now handled.
This replaces IndVarSimplify's OptimizeCanonicalIVType. It was
doing the same optimization, but it was limited to loops with
constant trip counts, because it was running after the loop
rewrite, and the information about the original induction
variable is lost by that point.
Rename ScalarEvolution's executesAtLeastOnce to
isLoopGuardedByCond, generalize it to be able to test for
ICMP_NE conditions, and move it to be a public function so that
IndVars can use it.
llvm-svn: 64407
2009-02-12 22:19:27 +00:00
Nate Begeman
8b548c0a9e
Add suppport for ConstantExprs of shufflevectors whose result type is not equal to the
...
type of the vectors being shuffled.
llvm-svn: 64401
2009-02-12 21:28:33 +00:00
Dale Johannesen
47321cf01f
Arrange to print constants that match "n" and "i" constraints
...
in inline asm as signed (what gcc does). Add partial support
for x86-specific "e" and "Z" constraints, with appropriate
signedness for printing.
llvm-svn: 64400
2009-02-12 20:58:09 +00:00
Dan Gohman
2a08dc12a9
Rename bugpoint's error message file so that if it somehow
...
gets left behind, it's less cryptic.
llvm-svn: 64399
2009-02-12 20:53:27 +00:00
Dan Gohman
f74d17b36a
Add a utility function to LoopInfo to return the exit block
...
when the loop has exactly one exit, and make use of it in
LoopIndexSplit.
llvm-svn: 64388
2009-02-12 18:08:24 +00:00
Chris Lattner
c1488eea4b
fix PR3538 for ARM.
...
llvm-svn: 64384
2009-02-12 17:38:23 +00:00
Chris Lattner
aeec838015
fix PR3538 for PPC
...
llvm-svn: 64383
2009-02-12 17:37:15 +00:00
Chris Lattner
1174b80823
fix the X86 backend to just drop llvm.declare nodes for VLAs instead of
...
leaving them in the DAG and then getting selection errors. This is a
fix for PR3538.
llvm-svn: 64382
2009-02-12 17:33:11 +00:00
Dan Gohman
3c296f6bd0
Adjust the sizes for a few SmallVectors to reflect their usage.
...
llvm-svn: 64381
2009-02-12 17:29:01 +00:00
Chris Lattner
4e2ed3e5e7
make fast isel fall back to selectiondags for VLA llvm.declare intrinsics.
...
llvm-svn: 64379
2009-02-12 17:23:20 +00:00
Chris Lattner
c21f591628
Add operator->, patch by Ben Laurie!
...
llvm-svn: 64378
2009-02-12 17:14:49 +00:00
Chris Lattner
2a13562296
add PR
...
llvm-svn: 64377
2009-02-12 17:04:57 +00:00
Dan Gohman
faf109b851
This code doesn't actually use the ExitingBlocks list.
...
llvm-svn: 64376
2009-02-12 16:36:26 +00:00
Evan Cheng
91c27ec711
It's (currently) not safe to keep certain physical registers live across basic blocks, e.g. x86 fp stack registers.
...
llvm-svn: 64374
2009-02-12 10:32:17 +00:00
Evan Cheng
521b8b5ef3
Oops. Last second clean up messed things up.
...
llvm-svn: 64373
2009-02-12 09:52:13 +00:00
Evan Cheng
04558ecc90
If availability info is kept when fallthrough into a bb, add the available registers to live-in set.
...
llvm-svn: 64372
2009-02-12 09:43:23 +00:00
Evan Cheng
19a1ba3680
Replace one of burr scheduling heuristic with something more sensible. Now calcMaxScratches simply compute the number of true data dependencies. This actually improve a couple of tests in dejagnu suite as many tests in llvm nightly test suite.
...
llvm-svn: 64369
2009-02-12 08:59:45 +00:00
Julien Lerouge
5d91210214
Fix MingW build: define GTEST_OS_WINDOWS if OS is MingW, but disable
...
exceptions.
llvm-svn: 64367
2009-02-12 08:02:35 +00:00
Julien Lerouge
37d198e8f9
Fix MingW build, patch by Kenneth Boyd!
...
llvm-svn: 64366
2009-02-12 07:39:10 +00:00