Daniel Dunbar
c6d3c5ef76
lit: Improve error when gtest discovery fails.
...
llvm-svn: 91458
2009-12-15 22:00:37 +00:00
Dan Gohman
c87c16b030
Revert 90628, which was incorrect.
...
llvm-svn: 91448
2009-12-15 20:21:44 +00:00
Chris Lattner
a3aef788ec
Fix GetConstantStringInfo to not look into MDString (it works on
...
real data, not metadata) and fix DbgInfoPrinter to not abuse
GetConstantStringInfo.
llvm-svn: 91444
2009-12-15 19:34:20 +00:00
Jim Grosbach
38c4f4b5d1
whitespace
...
llvm-svn: 91442
2009-12-15 19:28:13 +00:00
Devang Patel
1f4690c624
Add support to emit debug info for C++ namespaces.
...
llvm-svn: 91440
2009-12-15 19:16:48 +00:00
Chris Lattner
26ab363361
optimize strstr, PR5783
...
llvm-svn: 91438
2009-12-15 19:14:40 +00:00
Johnny Chen
c28e629c2d
Added encoding bits for the Thumb ISA. Initial checkin.
...
llvm-svn: 91434
2009-12-15 17:24:14 +00:00
Dan Gohman
265ce318b8
Delete an unused function.
...
llvm-svn: 91432
2009-12-15 16:30:09 +00:00
Chris Lattner
24aba42d04
add some other xforms that should be done as part of PR5783
...
llvm-svn: 91428
2009-12-15 09:05:13 +00:00
Chris Lattner
4179fa0357
a few improvements:
...
1. Use std::equal instead of reinventing it.
2. don't run dtors in destroy_range if element is pod-like.
3. Use isPodLike to decide between memcpy/uninitialized_copy
instead of is_class. isPodLike is more generous in some cases.
llvm-svn: 91427
2009-12-15 08:34:01 +00:00
Chris Lattner
6087a3e76b
hoist the begin/end/capacity members and a few trivial methods
...
up into the non-templated SmallVectorBase class.
llvm-svn: 91426
2009-12-15 08:29:22 +00:00
Chris Lattner
62e04783c0
improve isPodLike to know that all non-class types are pod.
...
llvm-svn: 91425
2009-12-15 07:40:44 +00:00
Chris Lattner
9c45e03664
Lang verified that SlotIndex is "pod like" even though it isn't a pod.
...
llvm-svn: 91423
2009-12-15 07:27:58 +00:00
Chris Lattner
45d040bd85
Remove isPod() from DenseMapInfo, splitting it out to its own
...
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.
llvm-svn: 91421
2009-12-15 07:26:43 +00:00
Mikhail Glushenkov
66a664870b
Convert llvmc tests to FileCheck.
...
llvm-svn: 91420
2009-12-15 07:21:14 +00:00
Mikhail Glushenkov
62b65ecf18
Support hook invocation from 'append_cmd'.
...
llvm-svn: 91419
2009-12-15 07:20:50 +00:00
Evan Cheng
b3032962ef
Fix an encoding bug.
...
llvm-svn: 91417
2009-12-15 06:49:02 +00:00
Chris Lattner
a867a58a26
add an ALWAYS_INLINE macro, which does the obvious thing.
...
llvm-svn: 91416
2009-12-15 06:14:33 +00:00
Kenneth Uildriks
792f0913ee
For fastcc on x86, let ECX be used as a return register after EAX and EDX
...
llvm-svn: 91410
2009-12-15 03:27:52 +00:00
John McCall
106c10881e
Names from dependent base classes are not found by unqualified lookup.
...
llvm-svn: 91407
2009-12-15 03:10:26 +00:00
Evan Cheng
fcb5453dc7
Disable 91381 for now. It's miscompiling ARMISelDAG2DAG.cpp.
...
llvm-svn: 91405
2009-12-15 03:07:11 +00:00
Mikhail Glushenkov
096fc103fb
Validate the generated C++ code in llvmc tests.
...
Checks that the code generated by 'tblgen --emit-llvmc' can be actually
compiled. Also fixes two bugs found in this way:
- forward_transformed_value didn't work with non-list arguments
- cl::ZeroOrOne is now called cl::Optional
llvm-svn: 91404
2009-12-15 03:04:52 +00:00
Mikhail Glushenkov
cb0721e363
Pipe 'grep' output to 'count'.
...
llvm-svn: 91403
2009-12-15 03:04:14 +00:00
Mikhail Glushenkov
2cb65bd5ab
Allow $CALL(Hook, '$INFILE') for non-join tools.
...
llvm-svn: 91402
2009-12-15 03:04:02 +00:00
Mikhail Glushenkov
53ec77972e
Small documentation update.
...
llvm-svn: 91401
2009-12-15 03:03:37 +00:00
Evan Cheng
852c486946
Make 91378 more conservative.
...
1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest.
2. If the shift is a left shift, make sure the original shift cannot shift out bits.
llvm-svn: 91399
2009-12-15 03:00:32 +00:00
John McCall
4ea24f19f5
You can't use typedefs to declare template member specializations, and
...
clang enforces it.
llvm-svn: 91397
2009-12-15 02:35:24 +00:00
Bill Wendling
07beddceb7
Initial work on disabling the scheduler. This is a work in progress, and this
...
stuff isn't used just yet.
We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2'
flags. The hypothesis is that the people who use these flags know what they are
doing, and have hand-optimized the C code to reduce latencies and other
conflicts.
The idea behind our scheme to turn off scheduling is to create a map "on the
side" during DAG generation. It will order the nodes by how they appeared in the
code. This map is then used during scheduling to get the ordering.
llvm-svn: 91392
2009-12-15 01:54:51 +00:00
Evan Cheng
45430bbfaa
Tail duplication should zap a copy it inserted for SSA update if the copy is the only use of its source.
...
llvm-svn: 91390
2009-12-15 01:44:10 +00:00
Evan Cheng
0e8b9e32d1
Use sbb x, x to materialize carry bit in a GPR. The result is all one's or all zero's.
...
llvm-svn: 91381
2009-12-15 00:53:42 +00:00
Evan Cheng
d1521ef40c
Fold (zext (and x, cst)) -> (and (zext x), cst).
...
llvm-svn: 91380
2009-12-15 00:52:11 +00:00
Daniel Dunbar
1542d735d9
NNT: Make sure stderr for build commands goes to log file, as intended but misdirected.
...
llvm-svn: 91379
2009-12-15 00:41:47 +00:00
Evan Cheng
ca7c690d3b
Propagate zest through logical shift.
...
llvm-svn: 91378
2009-12-15 00:41:36 +00:00
Eric Christopher
d5218331f7
Formatting.
...
llvm-svn: 91377
2009-12-15 00:40:55 +00:00
Bill Wendling
e8a525a196
Revert these. They may have been causing 483_xalancbmk to fail:
...
$ svn merge -c -91161 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91161 into '.':
U lib/CodeGen/BranchFolding.cpp
U lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91113 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91113 into '.':
G lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91101 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91101 into '.':
U include/llvm/CodeGen/MachineBasicBlock.h
G lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91092 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91092 into '.':
G include/llvm/CodeGen/MachineBasicBlock.h
G lib/CodeGen/MachineBasicBlock.cpp
llvm-svn: 91376
2009-12-15 00:39:24 +00:00
Jim Grosbach
ea8f6e31a0
nand atomic requires opposite operand ordering
...
llvm-svn: 91371
2009-12-15 00:12:35 +00:00
Dan Gohman
cecad35728
Fix integer cast code to handle vector types.
...
llvm-svn: 91362
2009-12-14 23:40:38 +00:00
Dan Gohman
28dea2a58b
Move Flag and isVoid after the vector types, since bit arithmetic with
...
those enum values is less common.
llvm-svn: 91361
2009-12-14 23:36:03 +00:00
Dan Gohman
897a5ac615
Fix these asserts to check the invariant that the code actually
...
depends on.
llvm-svn: 91360
2009-12-14 23:34:36 +00:00
Dan Gohman
2e1cf19924
Update this comment.
...
llvm-svn: 91356
2009-12-14 23:13:31 +00:00
Dan Gohman
6453a4e2ab
Fix this to properly clear the FastISel debug location. Thanks to
...
Bill for spotting this!
llvm-svn: 91355
2009-12-14 23:08:09 +00:00
Bob Wilson
cc70e3b60d
Rearrange rules to add missing dependency and allow parallel makes.
...
llvm-svn: 91352
2009-12-14 22:44:22 +00:00
Johnny Chen
bee6f16fed
Add encoding bits "let Inst{11-4} = 0b00000000;" to BR_JTr to disambiguate
...
between BR_JTr and STREXD.
llvm-svn: 91339
2009-12-14 21:51:34 +00:00
Bill Wendling
1bdf5d6f75
The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine,
...
but we need it to actually be 4-bytes in the FDE.
llvm-svn: 91337
2009-12-14 21:49:44 +00:00
Jim Grosbach
3974a80307
v6 sync insn copy/paste error
...
llvm-svn: 91333
2009-12-14 21:33:32 +00:00
Jim Grosbach
3c4f04112a
Add ARMv6 memory and sync barrier instructions
...
llvm-svn: 91329
2009-12-14 21:24:16 +00:00
Johnny Chen
acba3b0ae2
Fixed encoding bits typo of ldrexd/strexd.
...
llvm-svn: 91327
2009-12-14 21:01:46 +00:00
Jim Grosbach
57ccc19617
Thumb2 atomic operations
...
llvm-svn: 91321
2009-12-14 20:14:59 +00:00
Dan Gohman
1cfbfc86cf
Move several function bodies which are rarely inlined out of line.
...
llvm-svn: 91319
2009-12-14 19:43:09 +00:00
Chris Lattner
726e452ccb
fix an obvious bug found by clang++ and collapse a redundant if.
...
Here's the diagnostic from clang:
/Volumes/Data/dgregor/Projects/llvm/lib/Target/CppBackend/CPPBackend.cpp:989:23: warning: 'gv' is always NULL in this context
printConstant(gv);
^
1 diagnostic generated.
llvm-svn: 91318
2009-12-14 19:34:32 +00:00
Dan Gohman
fd5de58ec1
Micro-optimize these functions in the case where they are not inlined.
...
llvm-svn: 91316
2009-12-14 19:32:31 +00:00
Jim Grosbach
fed3d088ce
correct selection requirements for thumb2 vs. arm versions of the barrier intrinsics
...
llvm-svn: 91313
2009-12-14 19:24:11 +00:00
Eric Christopher
1dba6ea72f
Add radar fixed in comment.
...
llvm-svn: 91312
2009-12-14 19:07:25 +00:00
Jim Grosbach
20ac87de13
add Thumb2 atomic and memory barrier instruction definitions
...
llvm-svn: 91310
2009-12-14 18:56:47 +00:00
Jim Grosbach
3cdb555e0f
whitespace
...
llvm-svn: 91307
2009-12-14 18:36:32 +00:00
Jim Grosbach
5e0d2a2df6
ARM memory barrier instructions are not predicable
...
llvm-svn: 91305
2009-12-14 18:31:20 +00:00
Daniel Dunbar
8165f02e8c
NNT: Use [e]grep -a when scanning logs, its possibly they will have non-text
...
characters in them, in which case the grep will just return 'Binary file
matches' and the whole thing falls over.
llvm-svn: 91302
2009-12-14 17:58:33 +00:00
Daniel Dunbar
37e0439b17
NNT: Always create the -sentdata.txt file.
...
llvm-svn: 91301
2009-12-14 17:58:27 +00:00
Dan Gohman
2a07fd94f1
Clear the Processed set when it is no longer used, and clear the
...
IVUses list in releaseMemory().
llvm-svn: 91296
2009-12-14 17:35:17 +00:00
Dan Gohman
fbeec7270c
Fix a thinko; isNotAlreadyContainedIn had a built-in negative, so the
...
condition was inverted when the code was converted to contains().
llvm-svn: 91295
2009-12-14 17:31:01 +00:00
Dan Gohman
416d5b7361
Remove unnecessary #includes.
...
llvm-svn: 91293
2009-12-14 17:19:06 +00:00
Dan Gohman
66e7d522fe
Make the IVUses member private.
...
llvm-svn: 91291
2009-12-14 17:14:32 +00:00
Dan Gohman
163fb26927
Instead of having a ScalarEvolution pointer member in BasedUser, just pass
...
the ScalarEvolution pointer into the functions which need it.
llvm-svn: 91289
2009-12-14 17:12:51 +00:00
Dan Gohman
8dbd4e3d16
Don't bother cleaning up if there's nothing to clean up.
...
llvm-svn: 91288
2009-12-14 17:10:44 +00:00
Dan Gohman
88c7e61c5b
Delete an unused variable.
...
llvm-svn: 91287
2009-12-14 17:08:09 +00:00
Dan Gohman
57eb6cda7a
Drop Loop::isNotAlreadyContainedIn in favor of Loop::contains. The
...
former was just exposing a LoopInfoBase implementation detail.
llvm-svn: 91286
2009-12-14 17:06:50 +00:00
Jim Grosbach
9d6410d040
add ldrexd/strexd instructions
...
llvm-svn: 91284
2009-12-14 17:02:55 +00:00
Dan Gohman
838f604543
LSR itself doesn't need LoopInfo.
...
llvm-svn: 91283
2009-12-14 17:02:34 +00:00
Dan Gohman
273e692952
LSR itself doesn't need DominatorTree.
...
llvm-svn: 91282
2009-12-14 16:57:08 +00:00
Dan Gohman
c3513095cf
Remove the code in LSR that manually hoists expansions out of loops;
...
SCEVExpander does this automatically.
llvm-svn: 91281
2009-12-14 16:52:55 +00:00
Dan Gohman
ec2a7c58e8
Minor code cleanups.
...
llvm-svn: 91280
2009-12-14 16:37:29 +00:00
Devang Patel
525dda05a0
Use DW_AT_specification to point to DIE describing function declaration.
...
llvm-svn: 91278
2009-12-14 16:18:45 +00:00
Shantonu Sen
0c20054cc4
Remove empty file completely
...
llvm-svn: 91277
2009-12-14 14:15:15 +00:00
Torok Edwin
022336adf7
Add "generic" fallback.
...
gcc warned that the function may not have a return value, indeed
for non-intel and non-amd X86 CPUs it is right (VIA, etc.).
llvm-svn: 91276
2009-12-14 12:38:18 +00:00
Lang Hames
c73ca2baca
Added CalcSpillWeights to CMakeLists.
...
llvm-svn: 91275
2009-12-14 07:43:25 +00:00
Bill Wendling
277381f69a
Whitespace changes, comment clarification. No functional changes.
...
llvm-svn: 91274
2009-12-14 06:51:19 +00:00
Lang Hames
d17e296301
Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights.
...
llvm-svn: 91273
2009-12-14 06:49:42 +00:00
Chris Lattner
aaa6ac10a6
revert r91184, because it causes a crash on a .bc file I just
...
sent to Bob.
llvm-svn: 91268
2009-12-14 05:11:02 +00:00
Jim Grosbach
8f3c70e909
atomic binary operations up to 32-bits wide.
...
llvm-svn: 91260
2009-12-14 04:22:04 +00:00
Mikhail Glushenkov
897889ef6b
Add a test for the 'init' option property.
...
llvm-svn: 91259
2009-12-14 04:06:38 +00:00
Jeffrey Yasskin
8c17e6de2b
Reinstate r91208 to fix available_externally linkage for globals, with
...
nlewycky's fix to add -rdynamic so the JIT can look symbols up in Linux builds
of the JITTests binary.
llvm-svn: 91250
2009-12-13 20:30:32 +00:00
Torok Edwin
abdc1c274b
Using _MSC_VER there was wrong, better just use the already existing ifdefs for
...
x86 CPU detection for the X86 getHostCPUName too, and create a simple
getHostCPUName that returns "generic" for all else.
llvm-svn: 91240
2009-12-13 08:59:40 +00:00
Chandler Carruth
dcf5dacb2c
Don't leave pointers uninitialized in the default constructor. GCC complains
...
about the potential use of these uninitialized members under certain conditions.
llvm-svn: 91239
2009-12-13 07:04:45 +00:00
Anton Korobeynikov
94b6310136
Fix weird typo which leads to unallocated memory access for nodes with 4 results.
...
llvm-svn: 91233
2009-12-13 01:00:59 +00:00
Anton Korobeynikov
45800ce646
Do not allow uninitialize access during debug printing
...
llvm-svn: 91232
2009-12-13 01:00:32 +00:00
Eli Friedman
96cf7f42b0
More info on this transformation.
...
llvm-svn: 91230
2009-12-12 23:23:43 +00:00
Eli Friedman
8eada9f580
Remove some stuff that's already implemented. Also, remove the note about
...
merging x >u 5 and x <s 20 because it's impossible to implement.
llvm-svn: 91228
2009-12-12 21:41:48 +00:00
Daniel Dunbar
e4b5f9f54c
Update install-clang target for clang-cc removal.
...
llvm-svn: 91226
2009-12-12 21:17:54 +00:00
Evan Cheng
26fdd7265b
Disable r91104 for x86. It causes partial register stall which pessimize code in 32-bit.
...
llvm-svn: 91223
2009-12-12 20:03:14 +00:00
Anton Korobeynikov
d8f320947f
Implement variable-width shifts.
...
No testcase yet - it seems we're exposing generic codegen bugs.
llvm-svn: 91221
2009-12-12 18:55:37 +00:00
Evan Cheng
3974c8de51
Add comment about potential partial register stall.
...
llvm-svn: 91220
2009-12-12 18:55:26 +00:00
Evan Cheng
6d6eaafa8c
Fix an obvious bug. No test case since LEA16r is not being used.
...
llvm-svn: 91219
2009-12-12 18:51:56 +00:00
Torok Edwin
5c9429fa47
Enable CPU detection when using MS VS 2k8 too.
...
MSVS2k8 doesn't define __i386__, hence all the CPU detection code was disabled.
Enable it by looking for _MSC_VER.
llvm-svn: 91217
2009-12-12 12:42:31 +00:00
Benjamin Kramer
401e6093c9
Fix some CHECK lines which were ignored by accident.
...
llvm-svn: 91214
2009-12-12 09:25:50 +00:00
Jeffrey Yasskin
9ad6ba3766
Revert r91208. Something on Linux prevents the JIT from looking up a symbol
...
defined in the test, and I don't have time tonight to figure it out.
llvm-svn: 91209
2009-12-12 06:18:46 +00:00
Jeffrey Yasskin
2d2dcdcbf7
Fix available_externally linkage for globals. It's probably still not
...
supported by emitGlobals, but I don't have a test case for that.
llvm-svn: 91208
2009-12-12 05:58:14 +00:00
Jeffrey Yasskin
7f1c9c2ff6
Make it easier to use the llvm_unreachable and DEBUG macros without "using
...
namespace llvm" by qualifying their implementations with ::llvm::.
llvm-svn: 91206
2009-12-12 04:08:32 +00:00
Jim Grosbach
8f9a3ac12c
Framework for atomic binary operations. The emitter for the pseudo instructions
...
just issues an error for the moment. The front end won't yet generate these
intrinsics for ARM, so this is behind the scenes until complete.
llvm-svn: 91200
2009-12-12 01:40:06 +00:00
Bob Wilson
895f364ae6
Revise scalar replacement to be more flexible about handle bitcasts and GEPs.
...
While scanning through the uses of an alloca, keep track of the current offset
relative to the start of the alloca, and check memory references to see if
the offset & size correspond to a component within the alloca. This has the
nice benefit of unifying much of the code from isSafeUseOfAllocation,
isSafeElementUse, and isSafeUseOfBitCastedAllocation. The code to rewrite
the uses of a promoted alloca, after it is determined to be safe, is
reorganized in the same way.
Also, when rewriting GEP instructions, mark them as "in-bounds" since all the
indices are known to be safe.
llvm-svn: 91184
2009-12-11 23:47:40 +00:00
Dan Gohman
619a78bd59
Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never
...
a vector type.
llvm-svn: 91181
2009-12-11 23:26:08 +00:00
Anton Korobeynikov
e27e028cdd
Lower setcc branchless, if this is profitable.
...
Based on the patch by Brian Lucas!
llvm-svn: 91175
2009-12-11 23:01:29 +00:00
Bill Wendling
b87b9925be
Don't try to move a MBB into the fall-through position if it's a landing pad or
...
branches only to a landing pad. Without this check, the compiler would go into
an infinite loop because the branch to a landing pad is an "abnormal" edge which
wasn't being taken into account.
This is the meat of that fix:
if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) {
The other stuff is simplification of the "branches to a landing pad" code.
llvm-svn: 91161
2009-12-11 21:47:36 +00:00
Devang Patel
b314bd688a
Construct CompileUnits lazily.
...
llvm-svn: 91159
2009-12-11 21:37:07 +00:00
Dan Gohman
1d459e4937
Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG.
...
llvm-svn: 91158
2009-12-11 21:31:27 +00:00
Jim Grosbach
22a4ea8690
memory barrier instructions by definition have side effects. This prevents the post-RA scheduler from moving them around.
...
llvm-svn: 91150
2009-12-11 20:29:53 +00:00
Dan Gohman
bffa061e02
Change this to the correct PR number.
...
llvm-svn: 91148
2009-12-11 20:09:21 +00:00
Dan Gohman
84ba039cf2
Make getUniqueExitBlocks's precondition assert more precise, to
...
avoid spurious failures. This fixes PR5758.
llvm-svn: 91147
2009-12-11 20:05:23 +00:00
Dan Gohman
6d306bb32b
Fix the result type of SELECT nodes lowered from Select instructions with
...
aggregate return values. This fixes PR5754.
llvm-svn: 91145
2009-12-11 19:50:50 +00:00
Anton Korobeynikov
fc51282cbe
Honour setHasCalls() set from isel.
...
This is used in some weird cases like general dynamic TLS model.
This fixes PR5723
llvm-svn: 91144
2009-12-11 19:39:55 +00:00
Johnny Chen
098bd1bbea
Store Register Exclusive should leave the source register Inst{3-0} unspecified.
...
llvm-svn: 91143
2009-12-11 19:37:26 +00:00
Jim Grosbach
afdddaed55
Update properties.
...
llvm-svn: 91140
2009-12-11 18:52:41 +00:00
Gabor Greif
cb4685c012
Simplify this class by removing the result cache.
...
This change removes the DefaultConstructible
and CopyAssignable constraints on the template
parameter T (the first one).
The second template parameter (R) is defaulted to be
identical to the first and controls the result type.
By specifying it to be (const T&) additionally the
CopyConstructible constraint on T can be removed.
This allows to use StringSwitch e.g. for llvm::Constant
instances.
Regarding the other review feedback regarding performance
because of taking pointers, this class should be completely
optimizable like before, since all methods are inline and
the pointer dereferencing and result value caching should be
possible behind the scenes by the "as-if" rule.
llvm-svn: 91123
2009-12-11 15:30:07 +00:00
Bill Wendling
9f13fc7d63
Revert part of r91101 which was causing an infinite loop in the self-hosting
...
build bots.
llvm-svn: 91113
2009-12-11 10:43:41 +00:00
Duncan Sands
5d96f3fcb6
Add utility method for determining whether a function argument
...
has the 'nest' attribute.
llvm-svn: 91109
2009-12-11 08:36:17 +00:00
Evan Cheng
ff2ac71b25
Tests for 91103 and 91104.
...
llvm-svn: 91105
2009-12-11 06:02:21 +00:00
Evan Cheng
766a73fb04
Add support to 3-addressify 16-bit instructions.
...
llvm-svn: 91104
2009-12-11 06:01:48 +00:00
Evan Cheng
c9a41c8b03
Coalesce insert_subreg undef, x first to avoid phase ordering issue.
...
llvm-svn: 91103
2009-12-11 06:01:00 +00:00
Bill Wendling
a1bce0c42e
Address comments on last patch:
...
- Loosen the restrictions when checking of it branches to a landing pad.
- Make the loop more efficient by checking the '.insert' return value.
- Do cheaper checks first.
llvm-svn: 91101
2009-12-11 03:14:18 +00:00
Bill Wendling
a581aacdce
A machine basic block may end in an unconditional branch, however it may have
...
more than one successor. Normally, these extra successors are dead. However,
some of them may branch to exception handling landing pads. If we remove those
successors, then the landing pads could go away if all predecessors to it are
removed. Before, it was checking if the direct successor was the landing
pad. But it could be the result of jumping through multiple basic blocks to get
to it. If we were to only check for the existence of an EH_LABEL in the basic
block and not remove successors if it's in there, then it could stop actually
dead basic blocks from being removed.
llvm-svn: 91092
2009-12-11 01:49:14 +00:00
Jim Grosbach
5c4e99fca6
Rough first pass at compare_and_swap atomic builtins for ARM mode. Work in progress.
...
llvm-svn: 91090
2009-12-11 01:42:04 +00:00
Anders Carlsson
fb8d445090
Add qualifiers for calls to member functions in dependent bases.
...
llvm-svn: 91087
2009-12-11 01:04:42 +00:00
Devang Patel
2eec32d944
If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die.
...
llvm-svn: 91077
2009-12-10 23:25:41 +00:00
Eric Christopher
4b91e0194b
Add a test for the fix in revision 91009.
...
llvm-svn: 91062
2009-12-10 21:11:40 +00:00
Evan Cheng
4986588ddb
It's not safe to coalesce a move where src and dst registers have different subregister indices. e.g.:
...
%reg16404:1<def> = MOV8rr %reg16412:2<kill>
llvm-svn: 91061
2009-12-10 20:59:45 +00:00
Douglas Gregor
9f8ca58e30
Remove a broken, unused header
...
llvm-svn: 91058
2009-12-10 19:52:22 +00:00
Devang Patel
2b75ed2c3d
Refactor code that finds context for a given die.
...
Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation.
llvm-svn: 91055
2009-12-10 19:14:49 +00:00
Jim Grosbach
fed78ccfb5
Add instruction encoding for DMB/DSB
...
llvm-svn: 91053
2009-12-10 18:35:32 +00:00
Devang Patel
b5b60ea4f9
Refactor.
...
llvm-svn: 91051
2009-12-10 18:05:33 +00:00
Jakob Stoklund Olesen
497161c40b
Also attempt trivial coalescing for live intervals that end in a copy.
...
The coalescer is supposed to clean these up, but when setting up parameters
for a function call, there may be copies to physregs. If the defining
instruction has been LICM'ed far away, the coalescer won't touch it.
The register allocation hint does not always work - when the register
allocator is backtracking, it clears the hints.
This patch is more conservative than r90502, and does not break
483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled
by default, and can be enabled with the -trivial-coalesce-ends option.
llvm-svn: 91049
2009-12-10 17:48:32 +00:00
Torok Edwin
12b8a63e13
Comparing std::string with NULL is a bad idea, so just check whether its empty.
...
This code was crashing always with oprofile enabled, since it tried to create a StringRef
out of NULL, which run strlen on NULL.
llvm-svn: 91046
2009-12-10 10:01:47 +00:00
Eric Christopher
22889c049d
Make sure the immediate dominator isn't NULL through iterations
...
of the loop. We could get to this condition via indirect
branches.
llvm-svn: 91009
2009-12-10 00:25:41 +00:00
Chris Lattner
9ccc879006
Fix PR5744, a case where we were getting the pointer size instead of the
...
value size. This only manifested when memdep inprecisely returns clobber,
which is do to a caching issue in the PR5744 testcase. We can 'efficiently
emulate' this by using '-no-aa'
llvm-svn: 91004
2009-12-10 00:11:45 +00:00
Jim Grosbach
53e8854443
Add memory barrier intrinsic support for ARM. Moving towards adding the atomic operations intrinsics.
...
llvm-svn: 91003
2009-12-10 00:11:09 +00:00
Chris Lattner
3ddf804f78
allow this to build when the #if 0's are enabled. No functionality change.
...
llvm-svn: 90999
2009-12-10 00:04:46 +00:00
Dan Gohman
72c367fb52
Dereference loopHeader after checking for null rather than before.
...
llvm-svn: 90990
2009-12-09 22:55:01 +00:00
Evan Cheng
2262909b20
Fix test.
...
llvm-svn: 90988
2009-12-09 22:24:42 +00:00
Evan Cheng
493b882f80
Optimize splat of a scalar load into a shuffle of a vector load when it's legal. e.g.
...
vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0>
=>
vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1>
iff ptr is 16-byte aligned (or can be made into 16-byte aligned).
llvm-svn: 90984
2009-12-09 21:00:30 +00:00
Dan Gohman
220b196c94
Reuse the Threshold value to size these containers because it's
...
currently somewhat convenient for them to have the same value.
llvm-svn: 90980
2009-12-09 18:48:53 +00:00
Devang Patel
9ccfb641d1
Reapply r90858, a cleanup patch.
...
llvm-svn: 90979
2009-12-09 18:24:21 +00:00
Chris Lattner
ca5f9cb18b
fix hte last remaining known (by me) phi translation bug. When we reanalyze
...
clobbers to forward pieces of large stores to small loads, we need to consider
the properly phi translated pointer in the store block.
llvm-svn: 90978
2009-12-09 18:21:46 +00:00
Chris Lattner
f8ba1253f1
change GetStoreValueForLoad to use IRBuilder, which is cleaner and
...
implicitly constant folds.
llvm-svn: 90977
2009-12-09 18:13:28 +00:00
Bob Wilson
1c5a6fb299
Fix a comment.
...
llvm-svn: 90975
2009-12-09 18:05:27 +00:00
Chris Lattner
9f9010ef47
Add a minor optimization: if we haven't changed the operands of an
...
add, there is no need to scan the world to find the same add again.
This invalidates the previous testcase, which wasn't wonderful anyway,
because it needed a run of instcombine to permute the use-lists in
just the right way to before GVN was run (so it was really fragile).
Not a big loss.
llvm-svn: 90973
2009-12-09 17:27:45 +00:00
Anton Korobeynikov
d0a0bc34e3
Add note about loadable modules on windows.
...
Patch by Gregory Petrosyan!
llvm-svn: 90972
2009-12-09 17:26:02 +00:00
Chris Lattner
fa2e536831
fix PR5733, a case where we'd replace an add with a lexically identical
...
binary operator that wasn't an add. In this case, a xor. Whoops.
llvm-svn: 90971
2009-12-09 17:18:49 +00:00
David Goodwin
a45fe67667
<rdar://problem/7453528>. Track only physical registers that are valid for the target.
...
llvm-svn: 90970
2009-12-09 17:18:22 +00:00
Chris Lattner
8f77035568
merge crash-2.ll into crash.ll
...
llvm-svn: 90969
2009-12-09 17:17:26 +00:00
Eric Christopher
f92d732c99
Silence conversion warning from 64 to 32-bit.
...
llvm-svn: 90962
2009-12-09 08:29:32 +00:00
Chris Lattner
07df9efb35
change AnalyzeLoadFromClobberingMemInst/AnalyzeLoadFromClobberingStore
...
to require the load ty/ptr to be passed in, no functionality change.
llvm-svn: 90960
2009-12-09 07:37:07 +00:00
Chris Lattner
0def861ee9
change AnalyzeLoadFromClobberingWrite and clients to pass in type
...
and pointer instead of the load. No functionality change.
llvm-svn: 90959
2009-12-09 07:34:10 +00:00
Chris Lattner
eea0f58393
enhance NonLocalDepEntry to keep the per-block phi translated address
...
of the query.
llvm-svn: 90958
2009-12-09 07:31:04 +00:00
Daniel Dunbar
d333139411
DeltaAlgorithm: Add a virtual destructor and home.
...
llvm-svn: 90957
2009-12-09 07:19:48 +00:00
Chris Lattner
0c31547168
change NonLocalDepEntry from being a typedef for an std::pair to be its
...
own small class. No functionality change.
llvm-svn: 90956
2009-12-09 07:08:01 +00:00
Lang Hames
1ab2b49e6d
Added a new "splitting" spiller.
...
When a call is placed to spill an interval this spiller will first try to
break the interval up into its component values. Single value intervals and
intervals which have already been split (or are the result of previous splits)
are spilled by the default spiller.
Splitting intervals as described above may improve the performance of generated
code in some circumstances. This work is experimental however, and it still
miscompiles many benchmarks. It's not recommended for general use yet.
llvm-svn: 90951
2009-12-09 05:39:12 +00:00
Daniel Dunbar
5ea6200d06
Remove spurious extern.
...
llvm-svn: 90937
2009-12-09 03:26:33 +00:00
Daniel Dunbar
0d886ca091
Remove unneeded ';' and a class/struct mismatch (noticed by clang).
...
llvm-svn: 90934
2009-12-09 02:58:09 +00:00
Chris Lattner
10398e74ae
the code in GVN that tries to forward large loads to small
...
stores is not phi translating, thus it miscompiles really
crazy testcases. This is from inspection, I haven't seen
this in the wild.
llvm-svn: 90930
2009-12-09 02:43:05 +00:00
Chris Lattner
946b58dd90
add some aborts to #if 0's.
...
llvm-svn: 90929
2009-12-09 02:41:54 +00:00
Chris Lattner
972e6d8d00
Switch GVN and memdep to use PHITransAddr, which correctly handles
...
phi translation of complex expressions like &A[i+1]. This has the
following benefits:
1. The phi translation logic is all contained in its own class with
a strong interface and verification that it is self consistent.
2. The logic is more correct than before. Previously, if intermediate
expressions got PHI translated, we'd miss the update and scan for
the wrong pointers in predecessor blocks. @phi_trans2 is a testcase
for this.
3. We have a lot less code in memdep.
We can handle phi translation across blocks of things like @phi_trans3,
which is pretty insane :).
This patch should fix the miscompiles of 255.vortex, and I tested it
with a bootstrap of llvm-gcc, llvm-test and dejagnu of course.
llvm-svn: 90926
2009-12-09 01:59:31 +00:00
Evan Cheng
d938faff4b
Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code.
...
llvm-svn: 90925
2009-12-09 01:53:58 +00:00
Devang Patel
e52b1fa128
Remove tests that are not suitable anymore. Plus they are not testing the original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests.
...
llvm-svn: 90923
2009-12-09 01:46:00 +00:00
Evan Cheng
f5938d5d27
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes.
...
llvm-svn: 90922
2009-12-09 01:36:00 +00:00
Chris Lattner
9af9d0f74e
fix a nasty variable that was shadowing the real CurBB but with the wrong value.
...
llvm-svn: 90920
2009-12-09 01:19:16 +00:00
Evan Cheng
2d412f0cb8
Infer alignment for non-fixed stack object.
...
llvm-svn: 90919
2009-12-09 01:17:24 +00:00
Evan Cheng
1750009f38
Add const qualifier.
...
llvm-svn: 90918
2009-12-09 01:10:37 +00:00
Evan Cheng
34a23ea371
Refactor InferAlignment out of DAGCombine.
...
llvm-svn: 90917
2009-12-09 01:04:59 +00:00
Chris Lattner
11da6b0050
fix many input tracking bugs.
...
llvm-svn: 90915
2009-12-09 00:56:14 +00:00
Chris Lattner
4b2a6e200f
when opt crashes, print its command line arguments as a pretty stack trace.
...
Somehow opt was missed when this was added.
llvm-svn: 90912
2009-12-09 00:41:28 +00:00
Dan Gohman
56a5f19c70
Fix a typo in a comment, and adjust SmallSet and SmallVector sizes,
...
that Chris noticed.
llvm-svn: 90910
2009-12-09 00:28:42 +00:00
Chris Lattner
37251f8375
fix PHI translation to take the PHI out of the instinputs set and add
...
the translated value back to it if an instruction.
llvm-svn: 90909
2009-12-09 00:18:13 +00:00
Chris Lattner
cfd76375e3
instructions defined in CurBB may be intermediate nodes of the computation.
...
llvm-svn: 90908
2009-12-09 00:10:55 +00:00
Chris Lattner
0aa75680d6
add dumping and sanity checking support.
...
llvm-svn: 90906
2009-12-09 00:01:00 +00:00
Dan Gohman
2d27b191d9
Put a threshold on the number of users PointerMayBeCaptured
...
examines; fall back to a conservative answer if there are
more. This works around some several compile time problems
resulting from BasicAliasAnalysis calling PointerMayBeCaptured.
The value has been chosen arbitrarily.
This fixes rdar://7438917 and may partially address PR5708.
llvm-svn: 90905
2009-12-08 23:59:12 +00:00
Chris Lattner
5cf4b74b45
make sure that PHITransAddr keeps its 'InstInputs' list up to
...
date when instsimplify kicks in.
llvm-svn: 90901
2009-12-08 23:42:51 +00:00
Devang Patel
512001ac7d
Revert 90858 90875 and 90805 for now.
...
llvm-svn: 90898
2009-12-08 23:21:45 +00:00
Evan Cheng
0c2544fd6b
- Support inline asm 'w' constraint for 128-bit vector types.
...
- Also support the 'q' NEON registers asm code.
llvm-svn: 90894
2009-12-08 23:06:22 +00:00
Daniel Dunbar
564c96bd5e
lit: Prevent crash-on-invalid (when run on directory which has no test suite).
...
llvm-svn: 90871
2009-12-08 19:49:30 +00:00
Daniel Dunbar
0f620b81c1
CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files.
...
llvm-svn: 90869
2009-12-08 19:47:36 +00:00
Evan Cheng
dc3e58eb89
Revert 90789 for now. It caused massive compile time regression. Post-ra scheduler slowed down dramatically with this.
...
llvm-svn: 90868
2009-12-08 19:34:53 +00:00
Bob Wilson
c5d082fd5d
Some superficial cleanups.
...
llvm-svn: 90866
2009-12-08 18:27:03 +00:00
Bob Wilson
2029ea04f9
Clean up dead operands left around after SROA replaces a mem intrinsic.
...
I'm not aware that this does anything significant on its own, but it's
needed for another patch that I'm working on.
llvm-svn: 90864
2009-12-08 18:22:03 +00:00
Devang Patel
24c0bb1ca1
Cleanup.
...
There is no need to supply ModuleCU to addType() as a parameter.
llvm-svn: 90858
2009-12-08 15:31:31 +00:00
Devang Patel
7d723ec70d
Do not try to push dead variable's debug info into namespace info.
...
llvm-svn: 90857
2009-12-08 15:01:35 +00:00
Benjamin Kramer
dfcc285902
Remove useless calls to c_str().
...
llvm-svn: 90855
2009-12-08 13:07:38 +00:00
Duncan Sands
6a3df7b0c7
Teach GlobalOpt to delete aliases with internal linkage (after
...
forwarding any uses). GlobalDCE can also do this, but is only
run at -O3.
llvm-svn: 90850
2009-12-08 10:10:20 +00:00
Chris Lattner
6425a23c8c
fix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not
...
side-effect the current object.
llvm-svn: 90837
2009-12-08 06:06:26 +00:00
Nick Lewycky
8bca014d7f
Remove unnecessary #include "llvm/LLVMContext.h".
...
llvm-svn: 90836
2009-12-08 05:45:41 +00:00
Chris Lattner
ff09559a8f
whitespace cleanup
...
llvm-svn: 90834
2009-12-08 05:31:46 +00:00
Oscar Fuentes
a929407244
Removed VC++ compatibility code from DataTypes.h.in.
...
This header file is not used on VC++ builds.
llvm-svn: 90829
2009-12-08 02:49:54 +00:00
Oscar Fuentes
15c4bc673a
For VC++, define the ?INT*_C macros only it they are not yet defined.
...
Some compatibility updates like the Boost TR1 compatibility headers
define them.
Patch contributed by OvermindDL1!
llvm-svn: 90828
2009-12-08 02:40:09 +00:00
Anton Korobeynikov
dd2b2f8cba
Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra instruction. Patch inspired by Brian Lucas!
...
llvm-svn: 90819
2009-12-08 01:03:04 +00:00
Evan Cheng
fb1654d467
Watch out for duplicated PHI instructions.
...
llvm-svn: 90816
2009-12-07 23:11:03 +00:00
Evan Cheng
5c668a2259
Follow up to 90488. Turn a check into an assertion.
...
llvm-svn: 90815
2009-12-07 23:10:34 +00:00
Jeffrey Yasskin
fc7384d366
Fix the OProfileJITEventListener for StringRef being returned from debug info.
...
llvm-svn: 90813
2009-12-07 22:32:38 +00:00
Victor Hernandez
58fd941eab
Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()
...
llvm-svn: 90807
2009-12-07 21:54:43 +00:00
Devang Patel
b074d1783b
Add support to emit debug info for c++ style namespaces.
...
llvm-svn: 90805
2009-12-07 21:41:32 +00:00
Evan Cheng
d9cb324d7c
Delete code accidentally left behind.
...
llvm-svn: 90804
2009-12-07 21:19:33 +00:00
Chris Lattner
9e34d156d3
fix typo
...
llvm-svn: 90793
2009-12-07 19:52:57 +00:00
Chris Lattner
dccf7ad8b9
add accessor, improve comment.
...
llvm-svn: 90792
2009-12-07 19:45:30 +00:00
Evan Cheng
8d61ec3002
Test case for 90787.
...
llvm-svn: 90791
2009-12-07 19:42:22 +00:00
David Greene
76a7edc36d
Use FileCheck and set nounwind on calls.
...
llvm-svn: 90790
2009-12-07 19:40:26 +00:00
Dan Gohman
6aaf4232e5
Apply Pekka Jääskeläinen's patch to raise the first virtual register
...
number in order to accomodate targets with more than 1024 registers.
llvm-svn: 90789
2009-12-07 19:38:26 +00:00
Victor Hernandez
fb7c680b61
Introduce the "@llvm.dbg.value" debug intrinsic.
...
The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value.
An example:
call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2 )
Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0.
llvm-svn: 90788
2009-12-07 19:36:34 +00:00
Mikhail Glushenkov
57a67facb8
Simplify a bit.
...
llvm-svn: 90785
2009-12-07 19:16:13 +00:00
Mikhail Glushenkov
fca845187d
Throw 'const char*' instead of 'std::string'.
...
llvm-svn: 90784
2009-12-07 19:15:57 +00:00
Chris Lattner
77b0d3b217
add support for phi translation and incorpation of new expression.
...
llvm-svn: 90782
2009-12-07 19:04:49 +00:00
Dan Gohman
9528ccdd77
Don't enable the post-RA scheduler on x86 except at -O3. In its
...
current form, it is too expensive in compile time.
llvm-svn: 90781
2009-12-07 19:04:31 +00:00
Chris Lattner
e60244db8c
checkpoint of the new PHITransAddr code, still not done and not used by
...
anything.
llvm-svn: 90779
2009-12-07 18:36:53 +00:00
Mikhail Glushenkov
0bdfb53080
Regenerate.
...
llvm-svn: 90776
2009-12-07 18:26:24 +00:00
Mikhail Glushenkov
550694d18a
Documentation update.
...
llvm-svn: 90775
2009-12-07 18:26:11 +00:00
Mikhail Glushenkov
67c106664b
Deprecate 'unpack_values'.
...
Use 'forward_values' + 'comma_separated' instead.
llvm-svn: 90774
2009-12-07 18:25:54 +00:00
Mikhail Glushenkov
e69994f04f
Pass '-msse' and friends to llc as '-mattr=+/-'.
...
llvm-svn: 90771
2009-12-07 17:03:21 +00:00
Mikhail Glushenkov
6b6be99632
Implement 'forward_value' and 'forward_transformed_value'.
...
llvm-svn: 90770
2009-12-07 17:03:05 +00:00
Mikhail Glushenkov
d5774dfb8d
Refactoring, no functionality change.
...
llvm-svn: 90764
2009-12-07 10:51:55 +00:00
Evan Cheng
cc77062194
Pre-regalloc tale duplication. Work in progress.
...
llvm-svn: 90759
2009-12-07 10:15:19 +00:00
John Mosby
7bc9bb3555
fixed some typos in method comments, reworded some comments for clarity
...
llvm-svn: 90754
2009-12-07 09:06:37 +00:00
Oscar Fuentes
8b6d88d2f8
Fixes the Atomic implementation if compiled by MSVC compiler.
...
sys::cas_flag should be long on this platform, InterlockedAdd() is
defined only for the Itanium architecture (according to MSDN).
Patch by Michael Beck!
llvm-svn: 90748
2009-12-07 05:29:59 +00:00
Evan Cheng
92c310cb79
If BB is empty, insert PHI before end() instead of front().
...
llvm-svn: 90744
2009-12-07 03:07:01 +00:00
Anton Korobeynikov
24a6316aaa
Some pretty-printing
...
llvm-svn: 90742
2009-12-07 02:28:41 +00:00
Anton Korobeynikov
1bcece70bd
Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type
...
llvm-svn: 90741
2009-12-07 02:28:26 +00:00
Anton Korobeynikov
ff4ab51400
Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from x86 :)
...
llvm-svn: 90740
2009-12-07 02:28:10 +00:00
Anton Korobeynikov
b4be8ce537
Initial codegen support for MSP430 ISRs
...
llvm-svn: 90739
2009-12-07 02:27:53 +00:00
Anton Korobeynikov
27a0ecfa39
Add MSP430 interrupt calling conv. No functionality change yet.
...
llvm-svn: 90738
2009-12-07 02:27:35 +00:00
Anton Korobeynikov
28d3c733aa
Add ability to select hw multiplier mode and select appropriate libcalls.
...
llvm-svn: 90737
2009-12-07 02:27:08 +00:00
Rafael Espindola
662908cdcf
Fix typos. Thanks to John Tytgat for noticing it!
...
llvm-svn: 90728
2009-12-07 00:27:35 +00:00
Anton Korobeynikov
75dfed4fa5
Dynamic stack realignment use of sp register as source/dest register
...
in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode.
Emit the following code instead:
mov r4, sp
bic r4, r4, #15
mov sp, r4
llvm-svn: 90724
2009-12-06 22:39:50 +00:00
Chris Lattner
6d6f10fe91
fix PR5698
...
llvm-svn: 90708
2009-12-06 17:17:23 +00:00
Chris Lattner
7a141b3d88
remove extraneous comma clang warns about
...
llvm-svn: 90707
2009-12-06 16:58:41 +00:00
Chris Lattner
778cb92235
constant fold loads from memcpy's from global constants. This is important
...
because clang lowers nontrivial automatic struct/array inits to memcpy from
a global array.
llvm-svn: 90698
2009-12-06 05:29:56 +00:00
Chris Lattner
93236ba327
add support for forwarding mem intrinsic values to non-local loads.
...
llvm-svn: 90697
2009-12-06 04:54:31 +00:00
Chris Lattner
850a3cd905
gvn is optimizing this better now.
...
llvm-svn: 90696
2009-12-06 04:16:05 +00:00
Chris Lattner
42376066eb
Handle forwarding local memsets to loads. For example, we optimize this:
...
short x(short *A) {
memset(A, 1, sizeof(*A)*100);
return A[42];
}
to 'return 257' instead of doing the load.
llvm-svn: 90695
2009-12-06 01:57:02 +00:00
Chris Lattner
d15e11ad98
Add helper methods for forming shift operations with a constant
...
shift amount.
llvm-svn: 90694
2009-12-06 01:56:22 +00:00
Chris Lattner
eb5bb1bf78
merge two tests.
...
llvm-svn: 90691
2009-12-06 01:47:24 +00:00
Oscar Fuentes
58eea20f47
CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES.
...
llvm-svn: 90685
2009-12-06 00:06:33 +00:00
Oscar Fuentes
4f6d1eb3e0
Fix for atomic intrinsics detection when using MSVC.
...
Patch by Michael Beck!
llvm-svn: 90683
2009-12-05 23:19:33 +00:00
Dan Gohman
35f5646ef0
Remove old DBG_LABEL code.
...
llvm-svn: 90669
2009-12-05 17:56:26 +00:00
Dan Gohman
6e7073b846
Remove the unused DisableLegalizeTypes option and related code.
...
llvm-svn: 90668
2009-12-05 17:51:33 +00:00
Bill Wendling
29d6390249
Calling InvalidateEntry during the refinement was breaking the bootstrap.
...
llvm-svn: 90656
2009-12-05 07:59:04 +00:00
Bill Wendling
fa3f115ec4
Final cleanups:
...
- Privatize a typedef.
- Call the InvalidateEntry when refining a type.
llvm-svn: 90655
2009-12-05 07:46:49 +00:00
Bill Wendling
f89986235d
Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail.
...
llvm-svn: 90653
2009-12-05 07:30:23 +00:00
Nick Lewycky
c86b6fbb40
Document that memory use intrinsics may also return Def results.
...
llvm-svn: 90651
2009-12-05 06:37:52 +00:00
Nick Lewycky
e91765fdbb
Fix indentation in switch statement.
...
llvm-svn: 90650
2009-12-05 06:37:24 +00:00
Nick Lewycky
a0e9d700dc
Generalize this optimization to work on equality comparisons between any two
...
integers that are constant except for a single bit (the same n-th bit in each).
llvm-svn: 90646
2009-12-05 05:00:00 +00:00
Eric Christopher
455c5776e2
More updates to objectsize intrinsic docs.
...
llvm-svn: 90644
2009-12-05 02:46:03 +00:00
Dan Gohman
0891d759b5
Don't print a space before the : between the file name and line number.
...
And separate the directory and file name with a '/'.
llvm-svn: 90641
2009-12-05 02:00:34 +00:00
Bill Wendling
4968774280
Inline methods which are called only once.
...
llvm-svn: 90640
2009-12-05 01:46:01 +00:00
Bill Wendling
da95e13750
Refactor some code. No functionality change.
...
llvm-svn: 90639
2009-12-05 01:43:33 +00:00
Dan Gohman
3a6164e8ab
Print newlines after printing labels for debug info, so that the output
...
isn't cluttered with things like "Llabel47:Llabel48: movq (%rsi), %xmm3"
llvm-svn: 90638
2009-12-05 01:42:34 +00:00
Dan Gohman
c82272a7b6
Don't blindly set the debug location for PHI node copies.
...
llvm-svn: 90637
2009-12-05 01:29:04 +00:00
Dan Gohman
18f94469dc
Make TargetSelectInstruction protected and called from FastISel.cpp
...
instead of SelectionDAGISel.cpp.
llvm-svn: 90636
2009-12-05 01:27:58 +00:00
Dan Gohman
047a767d74
Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of
...
MachineBasicBlock::canFallThrough(), which is target-independent and more
thorough.
llvm-svn: 90634
2009-12-05 00:44:40 +00:00
Dan Gohman
0b44cb0d78
Simplify this code: don't call AnalyzeBranch before doing simpler checks.
...
llvm-svn: 90633
2009-12-05 00:32:59 +00:00
Dan Gohman
02578a3805
The debug information for an LLVM Instruction applies to that Instruction
...
and that Instruction only. Implement this by setting the "current debug position"
back to Unknown after processing each instruction.
llvm-svn: 90632
2009-12-05 00:27:08 +00:00
Dan Gohman
abc77742c8
Fix this code to use DIScope instead of DICompileUnit, as in r90181.
...
Don't print "SrcLine"; just print the filename and line number, which
is obvious enough and more informative.
llvm-svn: 90631
2009-12-05 00:23:29 +00:00
Dan Gohman
33004b6302
Don't print the debug directory; it's often long and uninteresting. Omit
...
the column number if it is not known. Handle the case of a missing filename
better.
llvm-svn: 90630
2009-12-05 00:20:51 +00:00
Dan Gohman
e79368d3ff
Minor code simplification.
...
llvm-svn: 90628
2009-12-05 00:05:43 +00:00
David Greene
f96c416900
Remove an unneeded include.
...
llvm-svn: 90627
2009-12-05 00:03:24 +00:00
Dan Gohman
6aea8dccf1
Remove now-redundant llvm-as invocations.
...
llvm-svn: 90626
2009-12-05 00:02:37 +00:00
David Greene
86bafa29a3
Remove an unneeded include.
...
llvm-svn: 90625
2009-12-04 23:55:07 +00:00
Bill Wendling
f85dc3f0f1
Add testcase for PR4262.
...
llvm-svn: 90623
2009-12-04 23:29:57 +00:00
Dan Gohman
e6d5445dc1
Print a space between the comment character and the text.
...
llvm-svn: 90621
2009-12-04 23:19:55 +00:00
Bill Wendling
74356efae9
Temporarily revert r72620 because r72619 was reverted.
...
llvm-svn: 90619
2009-12-04 23:16:56 +00:00
Devang Patel
8f0460278c
In TAG_subrange_type, uppder bound is zero indexed.
...
llvm-svn: 90617
2009-12-04 23:10:24 +00:00
David Greene
c5f3d8e343
Fix a bad merge.
...
llvm-svn: 90616
2009-12-04 23:08:02 +00:00
David Greene
e373c9a71a
Update the TargetInstrInfo interfaces so hasLoad/StoreFrom/ToStackSlot
...
can return a MachineMemOperand.
llvm-svn: 90615
2009-12-04 23:00:50 +00:00
Bob Wilson
9e2792690b
Fix indentation.
...
llvm-svn: 90613
2009-12-04 22:46:47 +00:00
David Greene
15f9df5f4b
Use new interfaces to print spill size.
...
llvm-svn: 90611
2009-12-04 22:46:04 +00:00
David Greene
0508e435c3
Have hasLoad/StoreFrom/ToStackSlot return the relevant MachineMemOperand.
...
llvm-svn: 90608
2009-12-04 22:38:46 +00:00
Bob Wilson
050b812fe7
Fix up some comments.
...
llvm-svn: 90603
2009-12-04 21:57:37 +00:00
Bob Wilson
5ca37b274c
Fix 80-column violations.
...
llvm-svn: 90601
2009-12-04 21:51:35 +00:00
Daniel Dunbar
eebf029d1d
OptParser: Emit HelpText field for option groups.
...
llvm-svn: 90599
2009-12-04 21:41:24 +00:00
Bill Wendling
4ea0d2b8ee
Some code cleanup. No functionality change.
...
llvm-svn: 90588
2009-12-04 21:03:02 +00:00
Victor Hernandez
4d633542f2
Avoid creating a metadata slot for all metadata that contains an instruction
...
llvm-svn: 90581
2009-12-04 20:07:10 +00:00
Evan Cheng
9e67255748
Handle recursive PHI's.
...
llvm-svn: 90575
2009-12-04 19:09:10 +00:00
Victor Hernandez
a6bd3f5f5e
Fix crasher when N->getElement(n) is NULL
...
llvm-svn: 90572
2009-12-04 18:29:23 +00:00
Evan Cheng
6154dbd5ee
Add a pre-regalloc tail duplication pass.
...
llvm-svn: 90567
2009-12-04 09:42:45 +00:00
Evan Cheng
0f1cc35c65
Don't try to be cute with undef optimization here. Let ProcessImplicitDefs handle it.
...
llvm-svn: 90566
2009-12-04 09:23:37 +00:00
Duncan Sands
1602277b70
Add note about a subtle bug in this code. Does not effect the main
...
architectures that LLVM targets, because they don't use this code.
llvm-svn: 90564
2009-12-04 08:42:17 +00:00
Daniel Dunbar
c5b2ac4d97
Fix typo and add missing include.
...
llvm-svn: 90557
2009-12-04 08:17:07 +00:00
Andreas Neustifter
4665141ebd
Added debug output for inherited passes that are invalidated.
...
llvm-svn: 90553
2009-12-04 06:58:24 +00:00
Mikhail Glushenkov
c563ce3e62
Forward -m32/-m64 to the linker.
...
llvm-svn: 90548
2009-12-04 06:38:45 +00:00
Mikhail Glushenkov
2b86846b65
Support -march/-mtune/-mcpu.
...
llvm-svn: 90547
2009-12-04 06:38:28 +00:00
Chris Lattner
1ddfd9f96c
Fix PR5551 by not ignoring the top level constantexpr when
...
folding a load from constant.
llvm-svn: 90545
2009-12-04 06:29:29 +00:00
Chris Lattner
6d947a0774
add to cmake
...
llvm-svn: 90539
2009-12-04 04:15:36 +00:00
Chris Lattner
1c21aaca06
Small and carefully crafted testcase showing a miscompilation by GVN
...
that I'm working on. This is manifesting as a miscompile of 255.vortex
on some targets. No check lines yet because it fails.
llvm-svn: 90520
2009-12-04 02:12:12 +00:00
Chris Lattner
b63051caf6
add the start of a class used to handle phi translation in memdep and
...
gvn (this is just a skeleton so far). This will ultimately be used
to fix a nasty miscompilation with GVN.
llvm-svn: 90518
2009-12-04 02:10:16 +00:00
Mike Stump
94d3e9b094
Create yet another helper for Invoke.
...
llvm-svn: 90514
2009-12-04 01:53:15 +00:00
Victor Hernandez
b7176a13a4
Teach AsmWriter to write inline (not via a global metadata slot) metadata that contains an instruction
...
llvm-svn: 90512
2009-12-04 01:35:02 +00:00
Bob Wilson
2107eb70d9
Fix a comment typo.
...
llvm-svn: 90511
2009-12-04 01:33:04 +00:00
Mike Stump
bcb77c985b
Add some helpers for Invoke to mirror CreateCall helpers.
...
llvm-svn: 90508
2009-12-04 01:26:26 +00:00
Chris Lattner
2bd9609992
add an assert to make it really clear what this is doing. Return singularval as
...
a compile time perf optimization to avoid a load.
llvm-svn: 90507
2009-12-04 01:03:32 +00:00
Jakob Stoklund Olesen
ca9cf65455
Also attempt trivial coalescing for live intervals that end in a copy.
...
The coalescer is supposed to clean these up, but when setting up parameters
for a function call, there may be copies to physregs. If the defining
instruction has been LICM'ed far away, the coalescer won't touch it.
The register allocation hint does not always work - when the register
allocator is backtracking, it clears the hints.
This patch takes care of a few more cases that r90163 missed.
llvm-svn: 90502
2009-12-04 00:16:04 +00:00
Evan Cheng
e156f611ab
- If the reaching definition is an undef and the use is a PHI, add the implicit_def to the end of the source block.
...
- When reaching value is replaced with another, update the cache as well.
llvm-svn: 90501
2009-12-04 00:09:05 +00:00
Devang Patel
3b666fef67
Insert composite type DIE into the map before processing type fields. This allows fields to find their context DIE from the map.
...
llvm-svn: 90498
2009-12-03 23:46:57 +00:00
Victor Hernandez
fa23223d4a
Add ParseInlineMetadata() which can parses metadata that refers to an instruction. Extend ParseParameterList() to use this new function so that calls to llvm.dbg.declare can pass inline metadata
...
llvm-svn: 90497
2009-12-03 23:40:58 +00:00
Jim Grosbach
5f9f721e95
remove out of date FIXME.
...
llvm-svn: 90490
2009-12-03 21:55:01 +00:00
Evan Cheng
b2c1529d8f
Handle undef values properly.
...
llvm-svn: 90489
2009-12-03 21:51:55 +00:00
Evan Cheng
8a19371370
Watch out for PHI instruction with no source operands.
...
llvm-svn: 90488
2009-12-03 21:50:58 +00:00
Bob Wilson
53bdae3802
Fix a comment typo.
...
llvm-svn: 90487
2009-12-03 21:47:07 +00:00
Duncan Sands
bbd6b6ddf4
Fix ExpandShiftWithUnknownAmountBit, which was completely bogus.
...
Pointed out by Javier Martinez (who also provided a patch). Since
this logic is not used on (for example) x86, I guess nobody noticed.
Tested by generating SHL, SRL, SRA on various choices of i64 for all
possible shift amounts, and comparing with gcc. Since I did this on
x86-32, I had to force the use of ExpandShiftWithUnknownAmountBit.
What I'm saying here is that I don't have a testcase I can add to the
repository.
llvm-svn: 90482
2009-12-03 21:37:32 +00:00
Jakob Stoklund Olesen
18c7cbd99b
Clean up some loop logic.
...
llvm-svn: 90481
2009-12-03 20:49:10 +00:00
Devang Patel
eb57c59b66
Add support to emit debug info for virtual functions and virtual base classes.
...
llvm-svn: 90474
2009-12-03 19:11:07 +00:00
Dan Gohman
083f229ba2
Print a newline after the Args: line so that unrelated errs() output doesn't
...
end up on the same line.
llvm-svn: 90473
2009-12-03 19:03:18 +00:00
Benjamin Kramer
daea8420e9
Fix MSVC build.
...
llvm-svn: 90454
2009-12-03 13:23:03 +00:00
Andreas Neustifter
506891de63
Convert ProfileVerifier to template so it can be used for different types of ProfileInfo.
...
llvm-svn: 90451
2009-12-03 12:55:57 +00:00
Andreas Neustifter
7dd85bfdff
Do not create negative edge weights in ProfileEstimator.
...
Use integer values for weights to prevent rounding errors.
Make ProfileEstimator more robust in general CFGs.
llvm-svn: 90449
2009-12-03 12:41:14 +00:00
Daniel Dunbar
ff53d4694c
Add an implementation of the delta debugging algorithm.
...
- This is a pretty slow / memory intensive implementation, and I will likely
change it to an iterative model, but it works.
llvm-svn: 90447
2009-12-03 11:12:42 +00:00
Andreas Neustifter
b87d0f0662
Use ProfileInfo-API in ProfileInfo Loader and do more assertions.
...
llvm-svn: 90446
2009-12-03 11:00:37 +00:00
Andreas Neustifter
312288b30c
Converted ProfileInfo to template, added more API for ProfileInfo-preserving.
...
llvm-svn: 90445
2009-12-03 09:30:12 +00:00
Evan Cheng
1bbe6be037
Teach tail duplication to update SSA form. Work in progress.
...
llvm-svn: 90432
2009-12-03 08:43:53 +00:00
Chris Lattner
f05330a5c8
expand note.
...
llvm-svn: 90429
2009-12-03 07:43:46 +00:00
Chris Lattner
d1e4ee3c2b
add a note
...
llvm-svn: 90428
2009-12-03 07:41:54 +00:00
Nate Begeman
9655f84662
Don't pull vector sext through both hands of a logical operation, since doing so prevents the fusion of vector sext and setcc into vsetcc.
...
Add a testcase for the above transformation.
Fix a bogus use of APInt noticed while tracking this down.
llvm-svn: 90423
2009-12-03 07:11:29 +00:00
Chris Lattner
c831fac043
fix a build problem with VC++, PR5664, patch by Alp Toker!
...
llvm-svn: 90419
2009-12-03 06:58:32 +00:00
Bob Wilson
0bbd3077ce
Recognize canonical forms of vector shuffles where the same vector is used for
...
both source operands. In the canonical form, the 2nd operand is changed to an
undef and the shuffle mask is adjusted to only reference elements from the 1st
operand. Radar 7434842.
llvm-svn: 90417
2009-12-03 06:40:55 +00:00
Jakob Stoklund Olesen
32042f9475
Don't call getValueType() on a null SDValue
...
llvm-svn: 90415
2009-12-03 05:15:35 +00:00
Owen Anderson
0b6e260066
Fix this crasher, and add a FIXME for a missed optimization.
...
llvm-svn: 90408
2009-12-03 03:43:29 +00:00
Evan Cheng
7145382389
Fill out codegen SSA updater. It's not yet tested.
...
llvm-svn: 90395
2009-12-03 02:31:43 +00:00
Bill Wendling
aba7d48764
Revert r90371. It was causing build failures.
...
llvm-svn: 90383
2009-12-03 01:54:07 +00:00
Jakob Stoklund Olesen
8392456f1b
Don't hang on to pointers or references after vector::push_back.
...
The MO reference to a MachineOperand can be invalidated by
MachineInstr::addOperand. Don't even use it for debugging.
llvm-svn: 90381
2009-12-03 01:49:56 +00:00
Chris Lattner
65812b58f2
add a failing testcase.
...
llvm-svn: 90380
2009-12-03 01:46:18 +00:00
Devang Patel
236526dd18
Emit method definition DIE at module level (even for methods with inlined functino body at soure level) so that the debugger can invoke it. This fixes many test failures in gdb test suite.
...
llvm-svn: 90375
2009-12-03 01:25:38 +00:00
Bill Wendling
693969eb35
Further improvements: refactoring code that does the same thing into one
...
function, converting "dyn_cast" to "cast", asserting the correct things, and
other general cleanups.
llvm-svn: 90371
2009-12-03 01:15:46 +00:00
Chris Lattner
765ac33a1a
yay for case insensitive file systems (?)
...
llvm-svn: 90370
2009-12-03 01:10:05 +00:00
Chris Lattner
77c36d68f3
fix PR5673 by being more careful about pointers to functions.
...
llvm-svn: 90369
2009-12-03 01:05:45 +00:00
Chris Lattner
73570673de
remove some dead std::ostream using code.
...
llvm-svn: 90366
2009-12-03 00:55:04 +00:00
Chris Lattner
a48f44d9ee
improve portability to avoid conflicting with std::next in c++'0x.
...
Patch by Howard Hinnant!
llvm-svn: 90365
2009-12-03 00:50:42 +00:00
Bill Wendling
1ed59c63e3
This initial code is meant to convert TargetData to use an AbstractTypesUser so
...
that it doesn't have dangling pointers when abstract types are resolved. This
modifies it somewhat to address comments: making the "StructLayoutMap" an
anonymous structure, calling "removeAbstractTypeUser" when appropriate, and
adding asserts where helpful.
llvm-svn: 90362
2009-12-03 00:17:12 +00:00
Douglas Gregor
a3b825edd1
Fix CMake makefiles
...
llvm-svn: 90354
2009-12-02 22:19:31 +00:00
Evan Cheng
20e9d030c9
Skeleton for MachineInstr level SSA updater.
...
llvm-svn: 90353
2009-12-02 22:02:52 +00:00
Bill Wendling
76bf386af0
Remove unnecessary check.
...
llvm-svn: 90352
2009-12-02 22:02:20 +00:00
Jim Grosbach
51663f7165
Add MaxStackAlignment.cpp to CMake
...
llvm-svn: 90337
2009-12-02 19:31:07 +00:00
Jim Grosbach
2c3a6c6589
Factor the stack alignment calculations out into a target independent pass.
...
No functionality change.
llvm-svn: 90336
2009-12-02 19:30:24 +00:00
Bob Wilson
fffbc0c5d9
Don't count PHI instructions toward the limit for tail duplicating a block.
...
llvm-svn: 90326
2009-12-02 17:15:24 +00:00
Jim Grosbach
d831ef4945
Move EliminateDuplicatePHINodes() from SimplifyCFG.cpp to Local.cpp
...
llvm-svn: 90324
2009-12-02 17:06:45 +00:00
Andreas Neustifter
3d207290fe
Cheap, mostly strict, stable sorting.
...
This is necessary for tests so the results are comparable.
llvm-svn: 90320
2009-12-02 15:57:15 +00:00
Benjamin Kramer
eee88bc5d2
Silence compiler warnings.
...
llvm-svn: 90319
2009-12-02 15:33:44 +00:00
Devang Patel
8c33959df2
Clarify that DIEString does not keep a copy of the string.
...
llvm-svn: 90318
2009-12-02 15:25:16 +00:00
Owen Anderson
b9878ee6b6
Cleanup/remove some parts of the lifetime region handling code in memdep and GVN,
...
per Chris' comments. Adjust testcases to match.
llvm-svn: 90304
2009-12-02 07:35:19 +00:00
Chris Lattner
c468025ac9
factor some code better.
...
llvm-svn: 90299
2009-12-02 06:44:58 +00:00
Chris Lattner
2764b4dc55
formatting cleanups.
...
llvm-svn: 90298
2009-12-02 06:35:55 +00:00
Chris Lattner
eea42c7b51
tidy up, remove dependence on order of evaluation of function args from EmitMemCpy.
...
llvm-svn: 90297
2009-12-02 06:05:42 +00:00
Chris Lattner
4ca1981e82
merge sext-2 into sext.ll
...
llvm-svn: 90293
2009-12-02 05:34:35 +00:00
Chris Lattner
0a12a8f9fe
rename test
...
llvm-svn: 90292
2009-12-02 05:32:33 +00:00
Chris Lattner
fe206d2a13
filecheckize
...
llvm-svn: 90291
2009-12-02 05:32:16 +00:00
Mon P Wang
bb3eac9e7a
Fixed an assertion failure for tracking sext of a vector of integers
...
llvm-svn: 90290
2009-12-02 04:59:58 +00:00
Devang Patel
a5749bda2c
Add utility routine to create subprogram definition entry from subprogram declaration entry.
...
llvm-svn: 90282
2009-12-01 23:09:02 +00:00
Devang Patel
a605b9124a
Reuse existing subprogram DIE.
...
llvm-svn: 90281
2009-12-01 23:07:59 +00:00
Chris Lattner
0e3b78a6c2
return more useful error messages by using strerror to format errno
...
instead of returning an ambiguous reason.
llvm-svn: 90275
2009-12-01 22:51:41 +00:00