Dan Gohman
4330034160
Add a method to ScalarEvolution for telling it when a loop has been
...
modified in a way that may effect the trip count calculation. Change
IndVars to use this method when it rewrites pointer or floating-point
induction variables instead of using a doInitialization method to
sneak these changes in before ScalarEvolution has a chance to see
the loop. This eliminates the need for LoopPass to depend on
ScalarEvolution.
llvm-svn: 64810
2009-02-17 20:49:49 +00:00
Chris Lattner
24f31a0e59
commit a tweaked version of Daniel's patch for PR3599. We now
...
eliminate all the extensions and all but the one required truncate
from the testcase, but the or/and/shift stuff still isn't zapped.
llvm-svn: 64809
2009-02-17 20:47:23 +00:00
Dan Gohman
143206d07b
Move dumpPassStructure out of line.
...
llvm-svn: 64796
2009-02-17 19:41:26 +00:00
Dan Gohman
15bf1a76b9
Tidy whitespace.
...
llvm-svn: 64791
2009-02-17 19:34:54 +00:00
Dan Gohman
f84d42f282
Delete trailing whitespace.
...
llvm-svn: 64784
2009-02-17 19:13:57 +00:00
Duncan Sands
f974c5703c
This transform also applies to private linkage.
...
llvm-svn: 64773
2009-02-17 17:50:04 +00:00
Dan Gohman
efe65e547b
Fix 80-column violation.
...
llvm-svn: 64766
2009-02-17 15:57:39 +00:00
Evan Cheng
f505cd5ebb
A couple of places where reused use operands should be marked kill. This is exposed by recent availability fallthrough changes.
...
llvm-svn: 64745
2009-02-17 06:41:03 +00:00
Chris Lattner
cba4b6f83d
add a horrible note
...
llvm-svn: 64719
2009-02-17 01:16:14 +00:00
Bill Wendling
3c50922ea0
--- Merging (from foreign repository) r64714 into '.':
...
U include/llvm/CodeGen/DebugLoc.h
U lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
Enable debug location generation at -Os. This goes with the reapplication of the
r63639 patch.
llvm-svn: 64715
2009-02-17 01:04:54 +00:00
Devang Patel
19b9ed7a30
Testcase for rev. 64704
...
llvm-svn: 64705
2009-02-17 00:15:08 +00:00
Evan Cheng
161861deb0
Strengthen the "non-constant stride must dominate loop preheader" check.
...
llvm-svn: 64703
2009-02-17 00:13:06 +00:00
Dan Gohman
2cd8982002
Simplify; fix some 80-column violations.
...
llvm-svn: 64702
2009-02-17 00:10:53 +00:00
Dan Gohman
2a4553ba5f
Delete trailing whitespace.
...
llvm-svn: 64694
2009-02-16 23:14:14 +00:00
Dan Gohman
f68d29edd5
Fix EnforceKnownAlignment so that it doesn't ever reduce the alignment
...
of an alloca or global variable.
llvm-svn: 64693
2009-02-16 23:02:21 +00:00
Daniel Dunbar
eaebae55db
Add llvm::RoundUpToAlignment.
...
- No functionality change.
llvm-svn: 64691
2009-02-16 22:57:04 +00:00
Ted Kremenek
772e6f3c93
Fix bug where APSInt::operator-- incremented instead of decremented.
...
llvm-svn: 64687
2009-02-16 22:39:08 +00:00
Devang Patel
ab0c5ecc54
Test case for llvm-gcc rev. 64648.
...
llvm-svn: 64649
2009-02-16 19:24:29 +00:00
Nick Lewycky
0f269cfdee
Fix typo caused by too much surfing, dudes...
...
llvm-svn: 64626
2009-02-16 04:26:53 +00:00
Dan Gohman
136aa1fb96
Delete this long-commented-out code. The situation it seems to have
...
been written for is no longer relevant with the elimination of
signed and unsigned types.
llvm-svn: 64625
2009-02-16 02:57:42 +00:00
Dan Gohman
73f794af6a
Rename IndVarsSimplify to IndVarSimplify, to be consistent with
...
the name used in the code that these tests are for.
llvm-svn: 64624
2009-02-16 00:56:15 +00:00
Dan Gohman
9cdfd44521
Change these tests to use regular loads instead of llvm.x86.sse2.loadu.dq.
...
Enhance instcombine to use the preferred field of
GetOrEnforceKnownAlignment in more cases, so that regular IR operations are
optimized in the same way that the intrinsics currently are.
llvm-svn: 64623
2009-02-16 00:44:23 +00:00
Dan Gohman
aaee6c9523
Don't assume that a left-shift of a value with one bit set will have
...
one bit set, because the bit may be shifted off the end. Instead,
just check for a constant 1 being shifted. This is still sufficient
to handle all the cases in test/CodeGen/X86/bt.ll. This fixes PR3583.
llvm-svn: 64622
2009-02-15 23:59:32 +00:00
Dan Gohman
f6ccacba36
MachineLICM now handles these cases.
...
llvm-svn: 64620
2009-02-15 23:24:52 +00:00
Nick Lewycky
dac78d87cb
Demonstrate the act of including multiple space-separated parameter attributes,
...
by request on IRC.
llvm-svn: 64619
2009-02-15 23:06:14 +00:00
Nick Lewycky
9178155206
Shoot! Remove this debugging line again!
...
llvm-svn: 64617
2009-02-15 22:50:17 +00:00
Nick Lewycky
b020e0d14c
Don't discard definitions of common symbols. Not sure if this is the right fix.
...
Before this change, the program:
int var;
int main(void) { return 0; }
when run under 'nm -g' would show 'U var' with the gold plugin and
'B var' with gcc.
llvm-svn: 64616
2009-02-15 22:49:17 +00:00
Nick Lewycky
8f4a097f15
Update the list of function annotations for nocapture. All of these came up
...
when I was looking at functions used by python.
Highlights include, better largefile support (64-bit file sizes on 32-bit
systems), fputs string is nocapture, popen/pclose added (popen being noalias
return), modf and frexp and friends. Also added some missing 'break' statements
and combined identical sections.
llvm-svn: 64615
2009-02-15 22:47:25 +00:00
Nicolas Geoffray
7f543ba9fa
On 64bit we may have a personality function which requires 64 bits to
...
be encoded.
llvm-svn: 64600
2009-02-15 20:49:23 +00:00
Duncan Sands
46196aef82
Make this more useful for cleaning up after the
...
one-definition-rule llvm-gcc changes (coming soon
to a tree near you!).
llvm-svn: 64588
2009-02-15 11:54:49 +00:00
Mikhail Glushenkov
e68b888550
80-column violation.
...
llvm-svn: 64586
2009-02-15 11:32:31 +00:00
Duncan Sands
b3f27881a9
If the target of an alias has internal linkage, then the
...
alias can be morphed into the target. Implement this
transform, and fix a crash in the existing transform at
the same time.
llvm-svn: 64583
2009-02-15 09:56:08 +00:00
Evan Cheng
2510436e20
Fix PR3522. It's not safe to sink into landing pad BB's.
...
llvm-svn: 64582
2009-02-15 08:36:12 +00:00
Evan Cheng
e79841adbb
Fix pr3571: If stride is a value defined by an instruction, make sure it dominates the loop preheader. When IV users are strength reduced, the stride is inserted into the preheader. It could create a use before def situation.
...
llvm-svn: 64579
2009-02-15 06:06:15 +00:00
Evan Cheng
fe151ba135
ifdef out unneeded if statement.
...
llvm-svn: 64575
2009-02-15 03:20:37 +00:00
Mikhail Glushenkov
58a1a8e546
Fix warning on gcc 4.3.
...
"system() declared with attribute warn_unused_result."
llvm-svn: 64574
2009-02-15 03:20:32 +00:00
Mikhail Glushenkov
a539836b95
Whitespace fixes.
...
llvm-svn: 64573
2009-02-15 03:20:03 +00:00
Cedric Venet
b8aa2ea72a
Add mode_t to the config.h generated by cmake on win32. Used by clang.
...
llvm-svn: 64555
2009-02-14 16:13:26 +00:00
Cedric Venet
d1e179d992
Unbreak the build on win32.
...
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
2009-02-14 16:06:42 +00:00
Duncan Sands
73247d2edc
Generalize some alias analysis logic from atomic
...
intrinsics to any IntrWriteArgMem intrinsics.
llvm-svn: 64551
2009-02-14 10:56:35 +00:00
Mikhail Glushenkov
0575bfdeaa
80-column violation.
...
llvm-svn: 64550
2009-02-14 08:41:25 +00:00
Duncan Sands
1ba13931b6
The trampoline intrinsic can be marked IntrWriteArgMem,
...
now that this no longer implies nocapture.
llvm-svn: 64540
2009-02-14 05:33:26 +00:00
Duncan Sands
809d9167da
IntrWriteArgMem implies nocapture, but this wasn't
...
taken advantage of anywhere. Change the definition
of IntrWriteArgMem to no longer imply nocapture, and
explicitly add nocapture attributes everywhere (well,
not quite everywhere, because some of these intrinsics
did capture their arguments!). Also, make clear that
the lack of other side-effects does not exclude doing
volatile loads or stores - the atomic intrinsics do
these, yet they are all marked IntrWriteArgMem (this
change is safe because nothing exploited it).
llvm-svn: 64539
2009-02-14 05:16:25 +00:00
Dan Gohman
29705333e5
The x86-64 red zone is now being used.
...
llvm-svn: 64535
2009-02-14 03:30:05 +00:00
Dan Gohman
671f2c085f
Extend the IndVarSimplify support for promoting induction variables:
...
- Test for signed and unsigned wrapping conditions, instead of just
testing for non-negative induction ranges.
- Handle loops with GT comparisons, in addition to LT comparisons.
- Support more cases of induction variables that don't start at 0.
llvm-svn: 64532
2009-02-14 02:31:09 +00:00
Dan Gohman
47ff6aad23
Clarify debug output.
...
llvm-svn: 64531
2009-02-14 02:26:50 +00:00
Dan Gohman
4bfa1d4c63
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
6e1b2e36a5
Testcase for llvm-gcc 64510.
...
llvm-svn: 64511
2009-02-14 00:19:28 +00:00
Evan Cheng
c2fde91703
Teach x86 target -soft-float.
...
llvm-svn: 64496
2009-02-13 22:36:38 +00:00
Dan Gohman
55ea72179c
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
a2730abaaa
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
a738e8b854
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
566ed10244
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
d234a845f9
Mark strto* as readonly when the endptr is null.
...
llvm-svn: 64460
2009-02-13 17:08:33 +00:00
Nick Lewycky
a0e83a0952
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
51495609df
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
cf4bd2319c
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
333db7abbd
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
cdccffe731
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
c60bd012bc
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
f71a473720
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
026b56a9bc
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
3a8bd17fdb
Remove non-DebugLoc versions of BuildMI from IA64, Mips.
...
llvm-svn: 64438
2009-02-13 02:34:39 +00:00
Dale Johannesen
9bba902c83
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
57097d2a26
missed file
...
llvm-svn: 64436
2009-02-13 02:32:04 +00:00
Dale Johannesen
215a925766
Remove non-DebugLoc versions of buildMI from Sparc.
...
llvm-svn: 64435
2009-02-13 02:31:35 +00:00
Dale Johannesen
635f2a69d9
Remove non-DebugLoc versions of BuildMI from Alpha and Cell.
...
llvm-svn: 64433
2009-02-13 02:30:42 +00:00
Dale Johannesen
460bfeba8c
Remove refs to non-DebugLoc version of BuildMI from XCore, PIC16.
...
llvm-svn: 64432
2009-02-13 02:29:03 +00:00
Dale Johannesen
e9f623e27c
Remove refs to non-DebugLoc version of BuildMI from PowerPC.
...
llvm-svn: 64431
2009-02-13 02:27:39 +00:00
Dale Johannesen
b851a7853a
and one more file
...
llvm-svn: 64430
2009-02-13 02:26:21 +00:00
Dale Johannesen
7647da67ea
Remove refs to non-DebugLoc versions of BuildMI from ARM.
...
llvm-svn: 64429
2009-02-13 02:25:56 +00:00
Bill Wendling
65c0fd4c44
Revert this. It was breaking stuff.
...
llvm-svn: 64428
2009-02-13 02:16:35 +00:00
Bill Wendling
1c21ac3066
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
ba83228cdb
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
35f423e09e
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
baca6ed65e
Check in missing file.
...
llvm-svn: 64410
2009-02-12 23:24:44 +00:00
Dale Johannesen
6b8c76a910
Eliminate a couple of non-DebugLoc BuildMI variants.
...
Modify callers.
llvm-svn: 64409
2009-02-12 23:08:38 +00:00
Dan Gohman
eb6be650ce
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
94aa38d568
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
655775293f
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
af2037fbfd
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
656b097b8a
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
844deb73f4
fix PR3538 for ARM.
...
llvm-svn: 64384
2009-02-12 17:38:23 +00:00
Chris Lattner
4d4c702d5f
fix PR3538 for PPC
...
llvm-svn: 64383
2009-02-12 17:37:15 +00:00
Chris Lattner
aed3a4215b
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
e366c29fa0
Adjust the sizes for a few SmallVectors to reflect their usage.
...
llvm-svn: 64381
2009-02-12 17:29:01 +00:00
Chris Lattner
90880e2598
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
24ca124fc4
Add operator->, patch by Ben Laurie!
...
llvm-svn: 64378
2009-02-12 17:14:49 +00:00
Chris Lattner
cede94ddc9
add PR
...
llvm-svn: 64377
2009-02-12 17:04:57 +00:00
Dan Gohman
e0d32c490a
This code doesn't actually use the ExitingBlocks list.
...
llvm-svn: 64376
2009-02-12 16:36:26 +00:00
Evan Cheng
cf5cd6ecfe
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
b570499c25
Oops. Last second clean up messed things up.
...
llvm-svn: 64373
2009-02-12 09:52:13 +00:00
Evan Cheng
8b39b545a9
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
3a14efacb6
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
cbc2491deb
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
7682ffdeb9
Fix MingW build, patch by Kenneth Boyd!
...
llvm-svn: 64366
2009-02-12 07:39:10 +00:00
Chris Lattner
feb129e813
Fix a nasty bug (PR3550) where the inline pass could incorrectly mark
...
calls with the tail marker when inlining them through an invoke. Patch,
testcase, and perfect analysis by Jay Foad!
llvm-svn: 64364
2009-02-12 07:06:42 +00:00
Chris Lattner
096f44de61
improve naming of values in GVN, patch by Jay Foad!
...
llvm-svn: 64363
2009-02-12 07:00:35 +00:00
Chris Lattner
5297c63565
fix PR3537: if resetting bbi back to the start of a block, we need to
...
forget about already inserted expressions.
llvm-svn: 64362
2009-02-12 06:56:08 +00:00
Chris Lattner
1331d53c27
rename test to avoid messing with tab completion of dates.
...
llvm-svn: 64361
2009-02-12 06:54:55 +00:00
Ted Kremenek
24760d113b
Add method 'isSingleton()' to ImmutableSet. This returns true if the set contains exactly one element.
...
llvm-svn: 64359
2009-02-12 05:17:02 +00:00
Nick Lewycky
b92c4d72a7
Don't mark all args to strtod and friends as nocapture.
...
llvm-svn: 64352
2009-02-12 03:18:34 +00:00
Bill Wendling
f6d609a227
Move debug loc info along when the spiller creates new instructions.
...
llvm-svn: 64342
2009-02-12 00:02:55 +00:00
Evan Cheng
6f6abfd94b
Apparently some MachineBasicBlock's don't have corresponding llvm basic blocks.
...
llvm-svn: 64340
2009-02-11 23:42:39 +00:00
Evan Cheng
eb5ec4a0db
Remove a bogus assertion. It's possible a live-in available value is used by a previous instruction.
...
llvm-svn: 64339
2009-02-11 23:41:57 +00:00
Nate Begeman
318aea93bf
the two non-mask arguments to a shufflevector must be the same width, but they do not have to be the same
...
width as the result value.
llvm-svn: 64335
2009-02-11 22:36:25 +00:00
Dale Johannesen
cd4a301a1a
Edit description of floating point constants to
...
reflect reality. Acknowledgements to John Clements
for prodding me into this.
llvm-svn: 64332
2009-02-11 22:14:51 +00:00
Gabor Greif
e3069ab6e5
Fill in a glaring omission in derived User classes, namely
...
add efficient versions of op_begin and op_end. Up to now always those from User have been
called, which in most cases follow an indirection (OperandList) even if the exact Instruction
type is known.
llvm-svn: 64331
2009-02-11 22:09:00 +00:00
Bill Wendling
27b508db9b
Propagate DebugLoc info for spiller call-backs.
...
llvm-svn: 64329
2009-02-11 21:51:19 +00:00
Dan Gohman
45889d24fe
Fix a comment.
...
llvm-svn: 64328
2009-02-11 21:32:08 +00:00
Dan Gohman
6571ef3577
Don't use special heuristics for nodes with no data predecessors
...
unless they actually have data successors, and likewise for nodes
with no data successors unless they actually have data precessors.
llvm-svn: 64327
2009-02-11 21:29:39 +00:00
Ted Kremenek
88ceac46de
Add FoldingSet profile method for bools. Patch by Ben Laurie!
...
llvm-svn: 64324
2009-02-11 20:53:17 +00:00
Daniel Dunbar
df8bc9fc7b
Update to match space changes in .ll
...
llvm-svn: 64322
2009-02-11 20:48:21 +00:00
Dan Gohman
298a2946f1
Delete the heuristic for non-livein CopyFromReg nodes. Non-liveinness
...
is determined by whether the node has a Flag operand. However, if the
node does have a Flag operand, it will be glued to its register's
def, so the heuristic would end up spuriously applying to whatever
node is the def.
llvm-svn: 64319
2009-02-11 20:25:59 +00:00
Dan Gohman
27f85854f9
Don't try to set an EFLAGS operand to dead if no instruction was created.
...
This fixes a bug introduced by r61215.
llvm-svn: 64316
2009-02-11 19:50:24 +00:00
Dale Johannesen
cc5fc44d02
Make a transformation added in 63266 a bit less aggressive.
...
It was transforming (x&y)==y to (x&y)!=0 in the case where
y is variable and known to have at most one bit set (e.g. z&1).
This is not correct; the expressions are not equivalent when y==0.
I believe this patch salvages what can be salvaged, including
all the cases in bt.ll. Dan, please review.
Fixes gcc.c-torture/execute/20040709-[12].c
llvm-svn: 64314
2009-02-11 19:19:41 +00:00
Bill Wendling
5f14a01340
Revert r64300 and r64301. These were causing the following errors respectively:
...
During llvm-gcc bootstrap:
Undefined symbols:
"llvm::FPPassManager::doFinalization(llvm::Module&)", referenced from:
(anonymous namespace)::CGPassManager::doFinalization(llvm::CallGraph&, llvm::Module&)
in libLLVMipa.a(CallGraphSCCPass.o)
"llvm::FPPassManager::doInitialization(llvm::Module&)", referenced from:
(anonymous namespace)::CGPassManager::doInitialization(llvm::CallGraph&, llvm::Module&)
in libLLVMipa.a(CallGraphSCCPass.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/obj-llvm/Release/bin/opt] Error 1
During an LLVM release build:
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-register-desc -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenRegisterInfo.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Building X86.td instruction names with tblgen
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-instr-enums -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenInstrNames.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Building X86.td instruction information with tblgen
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-instr-desc -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenInstrInfo.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Building X86.td assembly writer with tblgen
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/bin/tblgen -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86 -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target -gen-asm-writer -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Target/X86/Release/X86GenAsmWriter.inc.tmp /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Target/X86/X86.td
llvm[3]: Compiling InstructionCombining.cpp for Release build
if /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~dst/Developer/usr/bin/llvm-g++-4.2 -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Transforms/Scalar -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -fno-exceptions -Woverloaded-virtual -pedantic -Wall -W -Wwrite-strings -Wno-long-long -Wunused -Wno-unused-parameter -fstrict-aliasing -Wstrict-aliasing -c -MMD -MP -MF "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.d.tmp" -MT "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.lo" -MT "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.o" -MT "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.d" /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/lib/Transforms/Scalar/InstructionCombining.cpp -o /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.o ; \
then /bin/mv -f "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Transforms/Scalar/Release/InstructionCombining.d.tmp" "/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/lib/Trans
llvm-svn: 64311
2009-02-11 18:19:24 +00:00
Duncan Sands
185fc29820
Revert r64299: it breaks the build when configured
...
without --enable-pic, like my nightly tester.
llvm-svn: 64302
2009-02-11 13:23:49 +00:00
Duncan Sands
5b3349064d
These uses of "inline" can cause strange link-time
...
failures when building with optimization. Just get
rid of them.
llvm-svn: 64301
2009-02-11 12:25:15 +00:00
Duncan Sands
003754f656
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: 64300
2009-02-11 09:58:43 +00:00
Nick Lewycky
9dfffc6c9f
Try this. Darwin -> LTO, PIC -> LTO + possibly gold too.
...
llvm-svn: 64299
2009-02-11 08:44:13 +00:00
Evan Cheng
a1968b0fc7
Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies.
...
llvm-svn: 64298
2009-02-11 08:24:21 +00:00
Dan Gohman
dfaf646c34
When scheduling a block in parts, keep track of the overall
...
instruction index across each part. Instruction indices are used
to make live range queries, and live ranges can extend beyond
scheduling region boundaries.
Refactor the ScheduleDAGSDNodes class some more so that it
doesn't have to worry about this additional information.
llvm-svn: 64288
2009-02-11 04:27:20 +00:00
Devang Patel
8a9ced15d4
62987 disables LTO build on darwin.
...
Revert 62987 for now. Nicolas please investigate.
llvm-svn: 64285
2009-02-11 02:34:33 +00:00
Devang Patel
316705027b
If llvm.dbg.region.end is disappearing then remove corresponding llvm.dbg.func.start also.
...
llvm-svn: 64278
2009-02-11 01:29:06 +00:00
Dan Gohman
1262a25683
Don't print extra spaces in vector and array constants. This makes
...
them visually more consistent with vector and array types.
llvm-svn: 64267
2009-02-11 00:25:25 +00:00
Dan Gohman
c8dcf4d72b
It isn't necessary to explicitly clear the contents of std::vector
...
and DenseMap members in a destructor. And tidy up a comment.
llvm-svn: 64265
2009-02-11 00:18:15 +00:00
Bill Wendling
e5640dd8ad
Don't try to strip a file we just moved.
...
llvm-svn: 64263
2009-02-11 00:14:53 +00:00
Dan Gohman
27fa408b64
Use iterators to iterate through the Preds array instead of
...
an index. This code is on the hot-path because the current
way SDep edges are uniqued has quadratic complexity.
llvm-svn: 64262
2009-02-11 00:12:28 +00:00
Dan Gohman
b3dbb21df1
Consider any instruction that modifies the stack pointer to be
...
a scheduling region boundary. This isn't necessary for
correctness; it helps with compile time, as it avoids the need
for data- and anti-dependencies from all spills and reloads on
the stack-pointer modification.
llvm-svn: 64255
2009-02-10 23:29:38 +00:00
Dan Gohman
b95434356c
Factor out more code for computing register live-range informationfor
...
scheduling, and generalize is so that preserves state across
scheduling regions. This fixes incorrect live-range information around
terminators and labels, which are effective region boundaries.
In place of looking for terminators to anchor inter-block dependencies,
introduce special entry and exit scheduling units for this purpose.
llvm-svn: 64254
2009-02-10 23:27:53 +00:00
Devang Patel
654e47f366
Ignore dbg intrinsic while folding unconditional branch.
...
llvm-svn: 64242
2009-02-10 22:14:17 +00:00
Evan Cheng
589a539423
Handle llvm.x86.sse2.maskmov.dqu in 64-bit.
...
llvm-svn: 64240
2009-02-10 22:06:28 +00:00
Evan Cheng
df15f13c34
80 col violations.
...
llvm-svn: 64237
2009-02-10 21:39:44 +00:00
Duncan Sands
6632f12c11
This is now done using a real i33, rather than
...
an emulated one. Adjust the check.
llvm-svn: 64236
2009-02-10 20:44:15 +00:00
Devang Patel
da1a632a87
Use early exits. Reduce indentation.
...
llvm-svn: 64226
2009-02-10 19:28:07 +00:00
Dan Gohman
1f517dd1c4
Use const, to support platforms where strrchr returns a const char *.
...
This fixes PR3535.
llvm-svn: 64224
2009-02-10 17:56:28 +00:00
Dan Gohman
1093e9a021
Answer a common FAQ:
...
"Can I compile C or C++ code to platform-independent LLVM bitcode?"
llvm-svn: 64222
2009-02-10 17:26:53 +00:00
Duncan Sands
d1de45a146
Pacify gcc-4.3 (thinks IsConstant may be used
...
uninitialized).
llvm-svn: 64220
2009-02-10 16:24:55 +00:00
Evan Cheng
ce3bbe515b
Fix PR3457: Ignore control successors when looking for closest scheduled successor. A control successor doesn't read result(s) produced by the scheduling unit being evaluated.
...
llvm-svn: 64210
2009-02-10 08:30:11 +00:00
Devang Patel
4bed3565f3
Do not clone llvm.dbg.func.start and corresponding llvm.dbg.region.end during inlining.
...
llvm-svn: 64209
2009-02-10 07:48:18 +00:00
Devang Patel
caf4485781
Enable scalar replacement of AllocaInst whose one of the user is dbg info.
...
llvm-svn: 64207
2009-02-10 07:00:59 +00:00
Devang Patel
9b6c1d6313
Validate file id.
...
llvm-svn: 64204
2009-02-10 06:04:08 +00:00
Sanjiv Gupta
c3f7b82628
Function temporaries can not overlap with retval or args.See the comment in source code to know the reason. Anything having .auto. in its name is local to a function in nature irrespective of the linkage specified. print static local variables in module level IDATA section.
...
llvm-svn: 64199
2009-02-10 04:20:26 +00:00
Evan Cheng
e5ade4a9a1
Implement FpSET_ST1_*.
...
llvm-svn: 64186
2009-02-09 23:32:07 +00:00
Evan Cheng
3af42a8a14
If the target cannot issue a copy for the given source and dest registers, abort instead of silently continue.
...
llvm-svn: 64184
2009-02-09 22:47:36 +00:00
Dale Johannesen
cd19967754
Fix PR 3471, and some cleanups.
...
llvm-svn: 64177
2009-02-09 22:14:15 +00:00
Evan Cheng
fe174df170
Simplify code.
...
llvm-svn: 64164
2009-02-09 21:01:06 +00:00
Evan Cheng
020588cee3
Make sure constant subscript is truncated to ptr size if it may not fit.
...
llvm-svn: 64163
2009-02-09 20:54:38 +00:00
Gabor Greif
5b9974a81f
incorporate review feedback
...
llvm-svn: 64158
2009-02-09 20:27:45 +00:00
Dan Gohman
a950e99dee
Use doxygen comment syntax.
...
llvm-svn: 64150
2009-02-09 18:12:09 +00:00
Dan Gohman
9280a685db
Use slightly more correct grammar in error messages.
...
llvm-svn: 64148
2009-02-09 17:41:21 +00:00
Mikhail Glushenkov
8ebeee37dc
80-column violations.
...
llvm-svn: 64147
2009-02-09 17:11:05 +00:00
Gabor Greif
cab008f51f
make sure that BranchInst::getSuccessor() does not assert in cast<>
...
even if the underlying operand is NULL. This may happen in debugging context
within opt with partial loop unrolling (see test/Transforms/LoopUnroll/partial.ll).
After this fix I can resubmit the (backed out) r63459:
* lib/VMCore/AsmWriter.cpp: use precise accessors.
llvm-svn: 64142
2009-02-09 15:45:06 +00:00
Bill Wendling
b9ad4921fd
Fix comment.
...
llvm-svn: 64137
2009-02-09 12:31:40 +00:00
Bill Wendling
cdd2f21dea
These function return 'void'. Don't have 'return' return anything.
...
llvm-svn: 64136
2009-02-09 12:31:26 +00:00
Chris Lattner
bf1d5458ad
fix typo, patch by Jonathan Brandmeyer!
...
llvm-svn: 64132
2009-02-09 10:00:56 +00:00
Duncan Sands
8c469be54b
Testcase for PR2437.
...
llvm-svn: 64131
2009-02-09 09:41:49 +00:00
Evan Cheng
f736bd9c79
Re-enable machine sinking pass now that the coalescer bugs and the AnalyzeBrnach bug are fixed.
...
llvm-svn: 64126
2009-02-09 08:45:39 +00:00
Evan Cheng
81ae066ab6
Fix another case ShortenDeadCopySrcLiveRange is shortening too much. No test case possible since I don't know what to grep for. :-(
...
llvm-svn: 64125
2009-02-09 08:37:45 +00:00
Evan Cheng
64dfcacd5f
Turns out AnalyzeBranch can modify the mbb being analyzed. This is a nasty
...
suprise to some callers, e.g. register coalescer. For now, add an parameter
that tells AnalyzeBranch whether it's safe to modify the mbb. A better
solution is out there, but I don't have time to deal with it right now.
llvm-svn: 64124
2009-02-09 07:14:22 +00:00
Bill Wendling
6e91f6119a
Strip the LTO dylib.
...
llvm-svn: 64119
2009-02-09 06:42:40 +00:00
Bill Wendling
194d09151a
Small fix for the 'strip' command. Do a list of .so files.
...
llvm-svn: 64112
2009-02-09 04:01:11 +00:00
Evan Cheng
b9946d9841
Eliminate a 'control reaches end of non-void function' warning.
...
llvm-svn: 64111
2009-02-09 03:07:24 +00:00
Bill Wendling
f2116d7450
Don't run 'strip' on files that aren't there.
...
llvm-svn: 64108
2009-02-09 02:18:35 +00:00
Bill Wendling
783b851b76
Remove warnings about not being able to delete something. Don't run lipo on gccas, gccld, and llvm-config scripts.
...
llvm-svn: 64107
2009-02-09 02:13:33 +00:00
Chris Lattner
da0921f5e6
mention rdynamic, PR3431, patch by Stein Roger Skafløtten!
...
llvm-svn: 64106
2009-02-09 00:04:40 +00:00
Bill Wendling
b9a7327006
Document llvm.umul.with.overflow indicating that it's badly broken and not intended for use.
...
llvm-svn: 64104
2009-02-08 23:00:09 +00:00
Bill Wendling
c743d39585
Rename dg.exp to llvmc.exp. This is so I can ignore it during a make check if I want to.
...
llvm-svn: 64103
2009-02-08 22:52:50 +00:00
Mikhail Glushenkov
f606bd6a6d
80-column violation.
...
llvm-svn: 64102
2009-02-08 22:48:07 +00:00
Mikhail Glushenkov
8b5bfbfc7a
Add a Sleep() function.
...
llvm-svn: 64101
2009-02-08 22:47:39 +00:00
Chris Lattner
d1d4cffae9
I can't type today apparently.
...
llvm-svn: 64097
2009-02-08 22:21:28 +00:00
Mikhail Glushenkov
a6435d48bc
Add Emacs hints to Alarm.inc.
...
Also removes some trailing whitespace and fixes one 80-column violation.
llvm-svn: 64094
2009-02-08 21:10:57 +00:00
Chris Lattner
1aca40e349
add a note.
...
llvm-svn: 64093
2009-02-08 20:44:19 +00:00
Chris Lattner
c9e1b48449
fix typo
...
llvm-svn: 64091
2009-02-08 20:00:15 +00:00
Chris Lattner
04c57c5bae
fix typo
...
llvm-svn: 64090
2009-02-08 19:59:51 +00:00
Chris Lattner
412f626b96
reject void pointers with a nice error:
...
llvm-as: t.ll:2:15: pointers to void are invalid, use i8* instead
%X = type void*
^
instead of asserting and dying.
llvm-svn: 64089
2009-02-08 19:56:22 +00:00
Chris Lattner
4a67c91d0b
document pointer type constraints, PR3513
...
llvm-svn: 64088
2009-02-08 19:53:29 +00:00
Mikhail Glushenkov
cc4c8e848a
The 'false.c' test must depend on llvm-g++.
...
Also, turn on Objective-C/C++ tests.
This should fix http://llvm.org/bugs/show_bug.cgi?id=3499 .
llvm-svn: 64084
2009-02-08 11:44:37 +00:00
Evan Cheng
b3783639cb
Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register.
...
llvm-svn: 64082
2009-02-08 11:04:35 +00:00
Evan Cheng
942519306e
Strengthen the previous check.
...
llvm-svn: 64076
2009-02-08 08:24:28 +00:00
Evan Cheng
fe014df914
r64073 commit message is lost. Here it is:
...
Right now if the coalesced copy def is dead and its src is a kill, and that
there are now other uses within the live range, the coalescer would mark the
def of the source register as dead. But it should also check if there are
other kills which means the value has other uses not in the live range.
llvm-svn: 64075
2009-02-08 08:00:36 +00:00
Evan Cheng
e5e95f7717
(no commit message)
...
llvm-svn: 64073
2009-02-08 07:48:37 +00:00
Bill Wendling
fd2bd720da
Fixes from feedback.
...
llvm-svn: 64070
2009-02-08 04:04:40 +00:00
Bill Wendling
f4d70628a3
Document the 'llvm.OP.with.overflow' intrinsics.
...
llvm-svn: 64066
2009-02-08 01:40:31 +00:00
Bill Wendling
415515077b
Mistakenly turned this on.
...
llvm-svn: 64065
2009-02-08 01:32:00 +00:00
Bill Wendling
5469ec1072
Revert r63999. It was breaking self-hosting builds.
...
llvm-svn: 64062
2009-02-08 00:58:05 +00:00
Chris Lattner
4f8542f31d
testcase for r64049 of llvm-gcc.
...
llvm-svn: 64050
2009-02-07 23:37:03 +00:00
Chris Lattner
d8f0786c31
Add missing break statements, fixing PR3503.
...
llvm-svn: 64040
2009-02-07 22:37:06 +00:00
Mon P Wang
21eb52a74f
Instrcombine should not change load(cast p) to cast(load p) if the cast
...
changes the address space of the pointer.
llvm-svn: 64035
2009-02-07 22:19:29 +00:00
Dale Johannesen
9c310711bb
Use getDebugLoc forwarder instead of getNode()->getDebugLoc.
...
No functional change.
llvm-svn: 64026
2009-02-07 19:59:05 +00:00
Evan Cheng
b87980a042
Revert 64023. make prefers GNUmakefile over makefile.
...
llvm-svn: 64024
2009-02-07 19:38:46 +00:00
Evan Cheng
b443e95b32
Move Apple style build makefiles to the top level. Just like llvmgcc42.
...
llvm-svn: 64023
2009-02-07 19:05:24 +00:00
Chris Lattner
c3aa8f7bab
fix bugpoint url, patch by Pieter de Bie!
...
llvm-svn: 64022
2009-02-07 18:56:30 +00:00
Dan Gohman
747e55bc9a
Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowing
...
ScheduleDAG's TLI member to use const.
llvm-svn: 64018
2009-02-07 16:15:20 +00:00
Dan Gohman
e9000829b0
Change several SmallPtrSetImpl members from public to protected,
...
to make the encapsulation more clear.
llvm-svn: 64017
2009-02-07 16:12:23 +00:00
Dan Gohman
1d258405ac
Simplify some code by using blocks_begin(), blocks_end(), and
...
the iterator typedefs instead of handling the std::vector
directly.
llvm-svn: 64016
2009-02-07 16:10:35 +00:00
Nick Lewycky
ef01e112aa
Add an API for strings with possible NULLs in the middle. Refactor the other
...
two AddString methods to use it.
llvm-svn: 64005
2009-02-07 04:57:08 +00:00
Mike Stump
f009a51794
Insert space to avoid warning and make code more readable.
...
llvm-svn: 64003
2009-02-07 03:36:02 +00:00
Nick Lewycky
4ddcc43724
Free the buffer in the case where we don't create a module out of it, as
...
pointed out by Torok Edwin.
Remove trailing whitespaces.
llvm-svn: 64002
2009-02-07 03:15:01 +00:00
Dale Johannesen
8ba7132128
Make SDNode constructors take a DebugLoc always.
...
Adjust derived classes to pass UnknownLoc where
a DebugLoc does not make sense. Pick one of
DebugLoc and non-DebugLoc variants to survive
for all such classes.
llvm-svn: 64000
2009-02-07 02:15:05 +00:00
Evan Cheng
9571621665
Enable machine sinking pass in non-fast mode.
...
llvm-svn: 63999
2009-02-07 01:57:46 +00:00
Dale Johannesen
773ca057b1
Deleted one line too many. oops.
...
llvm-svn: 63996
2009-02-07 01:34:19 +00:00
Dale Johannesen
a72d41a67b
Remove now-unused constructors.
...
llvm-svn: 63995
2009-02-07 01:27:09 +00:00
Evan Cheng
47a65a167d
Don't sink the instruction if TargetRegisterInfo::isSafeToMoveRegClassDefs doesn't think it's safe. This works around PR1911.
...
llvm-svn: 63994
2009-02-07 01:21:47 +00:00
Dale Johannesen
4ea526268c
Needs this file too.
...
llvm-svn: 63993
2009-02-07 00:56:46 +00:00
Dale Johannesen
62fd95d6ec
Get rid of the last non-DebugLoc versions of getNode!
...
Many targets build placeholder nodes for special operands, e.g.
GlobalBaseReg on X86 and PPC for the PIC base. There's no
sensible way to associate debug info with these. I've left
them built with getNode calls with explicit DebugLoc::getUnknownLoc operands.
I'm not too happy about this but don't see a good improvement;
I considered adding a getPseudoOperand or something, but it
seems to me that'll just make it harder to read.
llvm-svn: 63992
2009-02-07 00:55:49 +00:00
Dan Gohman
4e3e3deed3
Refactor some repeated logic into a separate function.
...
llvm-svn: 63989
2009-02-07 00:43:41 +00:00
Dan Gohman
78fe44ed52
Make a comment a doxygen comment.
...
llvm-svn: 63988
2009-02-07 00:42:54 +00:00
Bill Wendling
e53ca3a246
Constify operators.
...
llvm-svn: 63979
2009-02-06 23:17:54 +00:00
Dale Johannesen
84935759d5
Remove more non-DebugLoc getNode variants. Use
...
getCALLSEQ_{END,START} to permit passing no DebugLoc
there. UNDEF doesn't logically have DebugLoc; add
getUNDEF to encapsulate this.
llvm-svn: 63978
2009-02-06 23:05:02 +00:00
Dale Johannesen
dc93bbc4b0
And one more file.
...
llvm-svn: 63971
2009-02-06 21:55:48 +00:00
Dale Johannesen
400dc2e2e4
Remove more non-DebugLoc versions of getNode.
...
llvm-svn: 63969
2009-02-06 21:50:26 +00:00
Bill Wendling
b6b0aa2449
Record debug location information in the Dwarf writer.
...
A simple test program shows that debugging works. :-)
llvm-svn: 63968
2009-02-06 21:45:08 +00:00
Bill Wendling
03c34d0d3c
Clear out the CurDebugLoc info when doing a 'clear' on the SDL object.
...
llvm-svn: 63967
2009-02-06 21:36:23 +00:00
Bill Wendling
3ebc1ca43e
Add comparison operators to DebugLoc.
...
llvm-svn: 63966
2009-02-06 21:34:12 +00:00
Dan Gohman
21cb4114fb
Split the locking out of JIT::runJITOnFunction so that callers
...
that already hold the lock can call an entry point that doesn't
re-acquire the lock.
llvm-svn: 63965
2009-02-06 21:25:08 +00:00
Dan Gohman
1b32e0bbc2
Make Mutex's constructor explicit, and tidy up whitespace.
...
llvm-svn: 63963
2009-02-06 21:17:03 +00:00
Dan Gohman
af8f994681
Use .size and .type on ELF systems; this helps tools that map
...
addresses to symbols.
llvm-svn: 63962
2009-02-06 21:15:52 +00:00
Ted Kremenek
474f20efe3
Deallocate() methods now take a 'const void*' instead of a 'void *', matching observed behavior with how 'delete[]' can be used.
...
llvm-svn: 63956
2009-02-06 19:34:14 +00:00
Dale Johannesen
ab8e4425a3
Eliminate remaining non-DebugLoc version of getTargetNode.
...
llvm-svn: 63951
2009-02-06 19:16:40 +00:00
Dan Gohman
817a24f8e9
Rename SelectionDAGISel::Schedule to
...
SelectionDAGISel::CreateScheduler, and make it just create the
scheduler. Leave running the scheduler to the higher-level code.
This makes the higher-level code a little more explicit and
easier to follow, and will help enable some future refactoring.
llvm-svn: 63944
2009-02-06 18:26:51 +00:00
Sanjiv Gupta
48d6bb9924
Print globl directive for variables with external linkage (global variables).
...
llvm-svn: 63943
2009-02-06 18:24:59 +00:00
Dan Gohman
cd2cd9f5d7
Delete an unused member function.
...
llvm-svn: 63941
2009-02-06 18:19:52 +00:00
Evan Cheng
51afb7c0bb
We don't really need the abort here. This unbreak x86_64 linux build.
...
llvm-svn: 63940
2009-02-06 17:51:34 +00:00
Evan Cheng
066757eea1
Move getPointerRegClass from TargetInstrInfo to TargetRegisterInfo.
...
llvm-svn: 63938
2009-02-06 17:43:24 +00:00
Dan Gohman
483377c639
Move ScheduleDAGSDNodes.h to be a private header. Front-ends
...
that previously included this header should include
SchedulerRegistry.h instead.
llvm-svn: 63937
2009-02-06 17:22:58 +00:00
Evan Cheng
b5f0ec3eb7
Add TargetInstrInfo::isSafeToMoveRegisterClassDefs. It returns true if it's safe to move an instruction which defines a value in the register class. Replace pre-splitting specific IgnoreRegisterClassBarriers with this new hook.
...
llvm-svn: 63936
2009-02-06 17:17:30 +00:00
Evan Cheng
afdf90ae64
Change -1 => negative number.
...
llvm-svn: 63935
2009-02-06 17:12:56 +00:00
Dan Gohman
f4b08b4f6c
Move ScheduleDAGInstrs.h to be a private header. Front-ends
...
that used this header to select a scheduling policy should
use SchedulerRegistry.h instead (llvm-gcc and clang were
updated a while ago).
llvm-svn: 63934
2009-02-06 17:12:10 +00:00
Evan Cheng
1731125787
Document the meaning of -1 for getCopyCost.
...
llvm-svn: 63933
2009-02-06 17:01:33 +00:00
Dan Gohman
87cab1e751
Tidy up the ScheduleDAG class definition a little. Make a few
...
more member functions protected, and group all the protected
members together.
llvm-svn: 63932
2009-02-06 16:50:02 +00:00
Roman Levenstein
54e78e7446
Don't pass BitVectors by value, pass them by reference.
...
llvm-svn: 63931
2009-02-06 09:16:15 +00:00
Nick Lewycky
8811ecdadf
Correct strange whitespace.
...
llvm-svn: 63927
2009-02-06 07:01:00 +00:00
Devang Patel
7cb8df4ce7
Ignore DbgInfoIntrinsics.
...
llvm-svn: 63923
2009-02-06 06:19:06 +00:00
Chris Lattner
bbbb74372b
fix PR3489, use bits instead of bytes.
...
llvm-svn: 63916
2009-02-06 04:34:07 +00:00
Dale Johannesen
2c4cf2752d
get rid of some non-DebugLoc getTargetNode variants.
...
llvm-svn: 63909
2009-02-06 02:08:06 +00:00
Nick Lewycky
74b5ef7cae
Free the buffer.
...
llvm-svn: 63907
2009-02-06 01:58:34 +00:00
Evan Cheng
8ad4e0bb19
Fix test. It produces unexpected code if sse4.1 is on.
...
llvm-svn: 63906
2009-02-06 01:49:19 +00:00
Dale Johannesen
9f3f72f144
Get rid of one more non-DebugLoc getNode and
...
its corresponding getTargetNode. Lots of
caller changes.
llvm-svn: 63904
2009-02-06 01:31:28 +00:00
Owen Anderson
5a043f2cb1
Fix a crasher: we need to check that the function is non-null before using it!
...
llvm-svn: 63902
2009-02-06 00:13:43 +00:00
Owen Anderson
98a3617fba
Refactor my previous change to maintain the distinction between AliasAnalysis and BasicAliasAnalysis. This involves some wider changes because it
...
folds away some never-used methods.
llvm-svn: 63900
2009-02-05 23:36:27 +00:00
Devang Patel
409b794cfe
Ignore dbg intrinsics while propagating conditional expression info. Take 2.
...
llvm-svn: 63898
2009-02-05 23:32:52 +00:00
Evan Cheng
2599084ac5
isAsCheapAsMove instructions can have register src operands. Check if they are really re-materializable.
...
This fixes sse.expandfft and sse.stepfft.
llvm-svn: 63890
2009-02-05 22:24:17 +00:00
Dale Johannesen
f80493bbfd
Remove a non-DebugLoc version of getNode.
...
llvm-svn: 63889
2009-02-05 22:07:54 +00:00
Devang Patel
02f58e1e8d
Revert rev. 63876. It is causing llvm-gcc bootstrap failure.
...
llvm-svn: 63888
2009-02-05 21:46:41 +00:00
Dan Gohman
69d2cd92ba
Delete some trailing whiespaces.
...
llvm-svn: 63887
2009-02-05 21:34:56 +00:00
Dale Johannesen
3eb373f5ce
Remove 3 non-DebugLoc variants of getNode.
...
llvm-svn: 63886
2009-02-05 21:20:44 +00:00
Mike Stump
354d3de098
FIx spelling.
...
llvm-svn: 63883
2009-02-05 20:49:49 +00:00
Mike Stump
67f5ceaa82
Probe for flags before using them to try to help compiling with
...
compilers that don't support those flags. This hopefully will help
gcc 3.X compile this code. http://llvm.org/PR3487
llvm-svn: 63882
2009-02-05 20:45:27 +00:00