Sanjiv Gupta
c10d810303
Fixed the comment. No functionality change.
...
llvm-svn: 63387
2009-01-30 09:01:44 +00:00
Zhou Sheng
1e36fbb5ed
This is case is to uncover the bug in IntrinsicLowering.cpp,
...
the LowerPartSet(). It didn't handle the situation correctly when
the low, high argument values are in reverse order (low > high)
with 'Val' type is i32 (a corner case).
llvm-svn: 63386
2009-01-30 08:59:51 +00:00
Mike Stump
ecbe4a0860
Add opposite_of and inverse_opt to support -fno- style options. This
...
is necessary for eventual gcc commmand line compatibility.
llvm-svn: 63384
2009-01-30 08:19:46 +00:00
Sanjiv Gupta
082174cb78
Use sublw for comparison with literals instead of subwf.
...
llvm-svn: 63382
2009-01-30 07:55:25 +00:00
Mon P Wang
cbb20a6ee1
When PerformBuildVectorCombine, avoid creating a X86ISD::VZEXT_LOAD of
...
an illegal type.
llvm-svn: 63380
2009-01-30 07:07:40 +00:00
Sanjiv Gupta
964a29f671
Enable emitting of constant values in non-default address space as well. The APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces.
...
llvm-svn: 63377
2009-01-30 04:25:10 +00:00
Bill Wendling
9b3407e5bb
Propagate debug loc info in SimplifyNodeWithTwoResults.
...
llvm-svn: 63376
2009-01-30 03:08:40 +00:00
Bill Wendling
faed065e5c
Propagate debug loc info for MULHS.
...
llvm-svn: 63375
2009-01-30 03:00:18 +00:00
Bill Wendling
d033af09fd
Propagate debug loc info for SREM and UREM.
...
llvm-svn: 63374
2009-01-30 02:57:00 +00:00
Bill Wendling
aff3e03765
Propagate debug loc info for UDIV.
...
llvm-svn: 63373
2009-01-30 02:55:25 +00:00
Bill Wendling
5b663e7b53
Propagate debug loc info for SDIV.
...
llvm-svn: 63372
2009-01-30 02:52:17 +00:00
Bill Wendling
b48dcf67e5
Forgot to propagate debug loc info here.
...
llvm-svn: 63371
2009-01-30 02:49:26 +00:00
Dan Gohman
1ee0d41ef8
Fix a post-RA scheduling dependency bug.
...
If a MachineInstr doesn't have a memoperand but has an opcode that
is known to load or store, assume its memory reference may alias
*anything*, including stack slots which the compiler completely
controls.
To partially compensate for this, teach the ScheduleDAG building
code to do basic getUnderlyingValue analysis. This greatly
reduces the number of instructions that require restrictive
dependencies. This code will need to be revisited when we start
doing real alias analysis, but it should suffice for now.
llvm-svn: 63370
2009-01-30 02:49:14 +00:00
Bill Wendling
091f92f568
Propagate debug loc info for MUL.
...
llvm-svn: 63369
2009-01-30 02:45:56 +00:00
Bill Wendling
48ff08ef3e
Propagate debug loc info in SUB.
...
llvm-svn: 63368
2009-01-30 02:42:10 +00:00
Bill Wendling
6127757920
Propagate debug loc info in ADDC and ADDE.
...
llvm-svn: 63367
2009-01-30 02:38:00 +00:00
Bill Wendling
c442348dd7
Propagate debug loc info in DAG combine's "ADD".
...
llvm-svn: 63366
2009-01-30 02:31:17 +00:00
Bill Wendling
cdd96133bd
- Propagate debug loc info in combineSelectAndUse().
...
- Modify ReassociateOps so that the resulting SDValue is what the comment claims
it is.
llvm-svn: 63365
2009-01-30 02:23:43 +00:00
Mikhail Glushenkov
c7d6951c92
Add some comments.
...
llvm-svn: 63364
2009-01-30 02:12:57 +00:00
Chris Lattner
caffe92d86
Fix a bug in getMaxValue/getMinValue to pass the right signedness the
...
the constructed APSInt, patch suggested by Ben Laurie!
llvm-svn: 63362
2009-01-30 01:58:19 +00:00
Devang Patel
acbb381cc4
Enable target tripple.
...
llvm-svn: 63361
2009-01-30 01:40:58 +00:00
Devang Patel
a103ee4f0d
Linux and other target's encoding for DW_AT_declaration may not match.
...
llvm-svn: 63360
2009-01-30 01:37:30 +00:00
Dale Johannesen
ed255b3d8e
Propagate debug info when building SelectionDAG.
...
llvm-svn: 63359
2009-01-30 01:34:22 +00:00
Devang Patel
33a21670f4
Remove dead code, again.
...
llvm-svn: 63358
2009-01-30 01:27:49 +00:00
Devang Patel
776a4c5baa
Remove dead code.
...
llvm-svn: 63357
2009-01-30 01:25:47 +00:00
Devang Patel
4ba91058d2
Add DW_AT_declaration for class methods.
...
llvm-svn: 63356
2009-01-30 01:21:46 +00:00
Bill Wendling
9c9a3b6665
Propagate debug location info for the token factor.
...
llvm-svn: 63355
2009-01-30 01:13:16 +00:00
Devang Patel
199740651c
Add dump() routines to help debug debug info :)
...
llvm-svn: 63353
2009-01-30 01:03:10 +00:00
Bill Wendling
f6d0aff0bd
Add DebugLoc propagation to some of the methods in DAG combiner.
...
llvm-svn: 63350
2009-01-30 00:45:56 +00:00
Bill Wendling
33dddf3235
Explain why this is here.
...
llvm-svn: 63342
2009-01-29 23:19:43 +00:00
Owen Anderson
ad89c410e6
XFAIL this test. It only worked before because of a bug in the spill point selection code. Not deleting because
...
it should be possible to enhance the selection code to handle this in the future.
llvm-svn: 63340
2009-01-29 22:27:56 +00:00
Owen Anderson
bf77d2eb9d
Correct the algorithms for choosing spill and restore points so that we don't try to insert loads/stores between call frame setup and the actual call.
...
This fixes the last known failure for the pre-alloc-splitter.
llvm-svn: 63339
2009-01-29 22:13:06 +00:00
Dan Gohman
14d55f0a5c
Explicitly add PseudoSourceValue information when lowering
...
BUILD_VECTOR and conversions to stack operations.
llvm-svn: 63333
2009-01-29 21:02:43 +00:00
Dan Gohman
60d6844aa8
Make a few things const, fix some comments, and simplify
...
some assertions.
llvm-svn: 63328
2009-01-29 19:49:27 +00:00
Chris Lattner
dfb6735385
Fix windows build, patch by Marius Wachtler!
...
llvm-svn: 63325
2009-01-29 18:53:28 +00:00
Evan Cheng
a160d4af82
Local register allocator shouldn't assume only the entry and landing pad basic blocks have live-ins.
...
llvm-svn: 63323
2009-01-29 18:37:30 +00:00
Dan Gohman
8b437ccbbe
Fix two typos that Duncan spotted in a comment.
...
llvm-svn: 63312
2009-01-29 16:18:12 +00:00
Dan Gohman
ef04ed5477
In the case of an extractelement on an insertelement value,
...
the element indices may be equal if either one is not a
constant.
llvm-svn: 63311
2009-01-29 16:10:46 +00:00
Evan Cheng
a115859df0
Add a always_inline test case.
...
llvm-svn: 63304
2009-01-29 09:31:54 +00:00
Bill Wendling
a434d930ff
Revert r63273. This was already implemented by Dale. There's no need for my
...
change.
llvm-svn: 63301
2009-01-29 09:01:55 +00:00
Evan Cheng
45799abe61
Add a test case for Chris lvalue alignment fixes.
...
llvm-svn: 63300
2009-01-29 08:59:46 +00:00
Owen Anderson
c0924a0632
Fix an issue where restores could be inserted after a terminator instruction,
...
and an iterator invalidation issue.
FreeBench/pifft no longer miscompiles with these fixes!
llvm-svn: 63293
2009-01-29 08:22:06 +00:00
Owen Anderson
a590802ed6
Comments are good. :-)
...
llvm-svn: 63276
2009-01-29 05:41:02 +00:00
Owen Anderson
b05ce78c51
Add support for aggressive load-use-store folding. This takes care of the
...
vast majority of code size regressions introduced by pre-alloc-splitting.
llvm-svn: 63274
2009-01-29 05:28:55 +00:00
Bill Wendling
50338007b9
- Add DebugLoc to getTargetNode().
...
- Modify TableGen to add the DebugLoc when calling getTargetNode.
(The light-weight wrappers are only temporary. The non-DebugLoc version will be
removed once the whole debug info stuff is finished with.)
llvm-svn: 63273
2009-01-29 05:27:31 +00:00
Chris Lattner
c0474013cb
Fix PR3424, a static constructor ordering issue. Patch by Robert Schuster!
...
llvm-svn: 63269
2009-01-29 04:43:42 +00:00
Evan Cheng
76a2736c74
Exit with nice warnings when register allocator run out of registers.
...
llvm-svn: 63267
2009-01-29 02:20:59 +00:00
Dan Gohman
e58ab79f33
Make x86's BT instruction matching more thorough, and add some
...
dagcombines that help it match in several more cases. Add
several more cases to test/CodeGen/X86/bt.ll. This doesn't
yet include matching for BT with an immediate operand, it
just covers more register+register cases.
llvm-svn: 63266
2009-01-29 01:59:02 +00:00
Dan Gohman
84f0165273
Move the code that starts printing the Select_* functions
...
after the code that sorts the patterns. This doesn't
affect the output, but it makes the code a little easier
to follow.
llvm-svn: 63265
2009-01-29 01:37:18 +00:00
Evan Cheng
89ba594975
A slight compile time optimization. If the caller knows there isn't a free register getReg() should not call getFreeReg().
...
llvm-svn: 63263
2009-01-29 01:13:00 +00:00
Dale Johannesen
839acbb089
Add DebugLoc-sensitive versions of many node creation
...
functions. Currently omitted: memcpy, memmove, memset.
llvm-svn: 63259
2009-01-29 00:47:48 +00:00
Evan Cheng
55ca1d38ea
Fix comment about removeRange.
...
llvm-svn: 63255
2009-01-29 00:06:09 +00:00
Mon P Wang
9150f735fa
Fixed lowering of v816 shuffles.
...
llvm-svn: 63252
2009-01-28 23:11:14 +00:00
Bill Wendling
42b63bc175
Make test platform agnostic.
...
llvm-svn: 63247
2009-01-28 22:20:56 +00:00
Bill Wendling
1b6a3bce82
Add DebugLoc to the getNode() methods.
...
llvm-svn: 63245
2009-01-28 22:17:52 +00:00
Dan Gohman
d21775ae0e
Give this test an explicit target, to make it host-independent.
...
llvm-svn: 63244
2009-01-28 22:14:58 +00:00
Dan Gohman
511d5ece2b
SDOperand has been renamed to SDValue. SDNode::Val is now
...
accessed via SDNode::getNode.
llvm-svn: 63240
2009-01-28 21:36:46 +00:00
Dan Gohman
f52ac41566
Add more comments describing SDNode operator codes.
...
llvm-svn: 63239
2009-01-28 21:34:36 +00:00
Dale Johannesen
666bf20441
Add DebugLoc-aware constructors for SDNode derived
...
classes (those that reasonably have a DebugLoc
associated with them).
llvm-svn: 63236
2009-01-28 21:18:29 +00:00
Dan Gohman
7a1b4538a0
Add some comments on ISD::NodeType.
...
llvm-svn: 63234
2009-01-28 21:13:08 +00:00
Devang Patel
d7ecb3b661
Do not forget to derived type while constructing an array type.
...
llvm-svn: 63233
2009-01-28 21:08:20 +00:00
Chris Lattner
df17987c19
Fix some issues with volatility, move "CanConvertToScalar" check
...
after the others.
llvm-svn: 63227
2009-01-28 20:16:43 +00:00
Chris Lattner
1498e62117
strengthen this test.
...
llvm-svn: 63222
2009-01-28 19:29:30 +00:00
Mon P Wang
a15ea78ea6
Fixed extract element when the result needs to be promoted and the input widened.
...
llvm-svn: 63217
2009-01-28 18:53:39 +00:00
Dan Gohman
e7d7b0c2fd
Delete unnecessary elses.
...
llvm-svn: 63214
2009-01-28 18:03:09 +00:00
Chris Lattner
ff2d99d94b
Enable PACKAGE_VERSION in cmake builds, this unbreaks the clang build with cmake.
...
Patch by Piotr Rak!
llvm-svn: 63213
2009-01-28 17:49:03 +00:00
Dan Gohman
4aa1846215
Make isOperationLegal do what its name suggests, and introduce a
...
new isOperationLegalOrCustom, which does what isOperationLegal
previously did.
Update a bunch of callers to use isOperationLegalOrCustom
instead of isOperationLegal. In some case it wasn't obvious
which behavior is desired; when in doubt I changed then to
isOperationLegalOrCustom as that preserves their previous
behavior.
This is for the second half of PR3376.
llvm-svn: 63212
2009-01-28 17:46:25 +00:00
Duncan Sands
ba21b7d57a
Formatting.
...
llvm-svn: 63199
2009-01-28 14:42:54 +00:00
Duncan Sands
5a913d61e3
Rename getAnalysisToUpdate to getAnalysisIfAvailable.
...
llvm-svn: 63198
2009-01-28 13:14:17 +00:00
Duncan Sands
08e53d041f
Fix PR3415 (infinite loop in EscapeAnalysis) by
...
deleting the escape analysis pass.
llvm-svn: 63197
2009-01-28 11:33:59 +00:00
Evan Cheng
f31f288863
The memory alignment requirement on some of the mov{h|l}p{d|s} patterns are 16-byte. That is overly strict. These instructions read / write f64 memory locations without alignment requirement.
...
llvm-svn: 63195
2009-01-28 08:35:02 +00:00
Mon P Wang
d880efc005
Added sse test patterns for r62979 and r63193.
...
llvm-svn: 63194
2009-01-28 08:13:56 +00:00
Mon P Wang
5a685a52c1
Add shuffle splat pattern for x86 sse shifts.
...
llvm-svn: 63193
2009-01-28 08:12:05 +00:00
Mikhail Glushenkov
02b47b5e7a
Typo.
...
llvm-svn: 63174
2009-01-28 03:47:58 +00:00
Mikhail Glushenkov
84172f7dca
Update the generated docs.
...
llvm-svn: 63173
2009-01-28 03:47:38 +00:00
Mikhail Glushenkov
2115d09a10
Add three new option properties.
...
Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'.
llvm-svn: 63172
2009-01-28 03:47:20 +00:00
Mikhail Glushenkov
57cf3964f3
Clarify comment.
...
llvm-svn: 63171
2009-01-28 03:46:22 +00:00
Dan Gohman
b3bbde3e62
Use ValueType::bitsLT to simplify some code.
...
llvm-svn: 63170
2009-01-28 03:10:52 +00:00
Dan Gohman
172ad92b29
Use ZERO_EXTEND instead of ANY_EXTEND when promoting
...
shift amounts, to avoid implicitly assuming that
target architectures will ignore the high bits.
llvm-svn: 63169
2009-01-28 02:58:31 +00:00
Bill Wendling
3cf43ca571
Comment fixes.
...
llvm-svn: 63164
2009-01-28 01:19:52 +00:00
Evan Cheng
e4510972a6
Suppress a compile time warning.
...
llvm-svn: 63161
2009-01-28 00:53:34 +00:00
Dale Johannesen
b3e0931401
Embalm my ideas of how things should work. Not that
...
anyone will pay attention.
llvm-svn: 63155
2009-01-27 23:32:10 +00:00
Devang Patel
5adc3dbc96
Add type DIE into appropriate context DIE.
...
llvm-svn: 63154
2009-01-27 23:22:55 +00:00
Dale Johannesen
4e04ef3c55
Add a DebugLoc field and some simple accessors.
...
llvm-svn: 63152
2009-01-27 23:20:29 +00:00
Dale Johannesen
675869aef0
Reorder args, constify.
...
llvm-svn: 63151
2009-01-27 23:19:41 +00:00
Bill Wendling
fd03bdd00c
Add testcase for r63142.
...
llvm-svn: 63149
2009-01-27 23:00:53 +00:00
Anton Korobeynikov
70d4c08cfe
Treat [1 x i8] zeroinitializer as a C string, placing such stuff into
...
mergeable string section. I don't see any bad impact of such decision
(rather then placing it into mergeable const section, as it was before),
but at least Darwin linker won't complain anymore.
The problem in LLVM is that we don't have special type for string constants
(like gcc does). Even more, we have two separate types: ConstatArray for non-null
strings and ConstantAggregateZero for null stuff.... It's a bit weird :)
llvm-svn: 63142
2009-01-27 22:29:24 +00:00
Dan Gohman
b841dc2957
Use .empty() instead of comparing .size() with 0.
...
llvm-svn: 63139
2009-01-27 22:12:23 +00:00
Dale Johannesen
aa064e6cd6
Update to latest spelling.
...
llvm-svn: 63138
2009-01-27 22:09:11 +00:00
Dale Johannesen
f041127bda
Add DebugLoc field and simple accessors.
...
llvm-svn: 63136
2009-01-27 21:41:04 +00:00
Evan Cheng
573e529127
Refine DebugLoc per review comments.
...
llvm-svn: 63132
2009-01-27 21:15:07 +00:00
Dan Gohman
fb58faf29e
Add an assertion to the form of SelectionDAG::getConstant that takes
...
a uint64_t to verify that the value is in range for the given type,
to help catch accidental overflow. Fix a few places that relied on
getConstant implicitly truncating the value.
llvm-svn: 63128
2009-01-27 20:39:34 +00:00
Dan Gohman
0ca1e7c6b6
Reformat the allocation-order arrays to a more conventional style.
...
llvm-svn: 63121
2009-01-27 19:25:38 +00:00
Dan Gohman
0bd9546039
Delete redundant return statements.
...
llvm-svn: 63120
2009-01-27 19:23:22 +00:00
Dan Gohman
13f18e853f
Respect the DisableRedZone flag on PowerPC.
...
llvm-svn: 63119
2009-01-27 19:19:28 +00:00
Dan Gohman
f77f0ce21a
Simplify findNonImmUse; return the result using the return value
...
instead of via a by-reference argument. No functionality change.
llvm-svn: 63118
2009-01-27 19:04:30 +00:00
Torok Edwin
ec39eb8519
APInt's countLeadingOnes() was broken for negative i128 values,
...
causing assertion failures in getSExtValue().
Fix it by making highWordBits actually contain what its name says,
and add some more unit-tests for APInt.
This fixes PR3419.
llvm-svn: 63107
2009-01-27 18:06:03 +00:00
Dan Gohman
ed2ba0fb01
Make some comments doxygen-friendly.
...
llvm-svn: 63104
2009-01-27 17:28:23 +00:00
Owen Anderson
431053ed2c
Make the pre-split-limit option more useful by using a per-function counter.
...
llvm-svn: 63091
2009-01-27 05:01:15 +00:00
Evan Cheng
1bc8af207e
Implement multiple with overflow by 2 with an add instruction.
...
llvm-svn: 63090
2009-01-27 03:30:42 +00:00
Evan Cheng
ce95cddd0f
Forgot this test case.
...
llvm-svn: 63089
2009-01-27 02:59:39 +00:00
Dan Gohman
7740523a89
Eliminate unnecessary operands-list traversals.
...
llvm-svn: 63088
2009-01-27 02:37:43 +00:00
Dan Gohman
52e907a780
Add a FrontendC testcase for the x86-64 Red Zone feature,
...
to help verify that the feature may be disabled through
the -mno-red-zone option.
llvm-svn: 63079
2009-01-27 00:59:55 +00:00
Dan Gohman
75cee3a93c
Enable the red zone on x86-64 by default.
...
llvm-svn: 63078
2009-01-27 00:58:47 +00:00
Devang Patel
45c899cd15
Assorted debug info fixes.
...
- DW_AT_bit_size is only suitable for bitfields.
- Encode source location info for derived types.
- Source location and type size info is not useful for subroutine_type (info is included in respective DISubprogram) and array_type.
llvm-svn: 63077
2009-01-27 00:45:04 +00:00
Dan Gohman
8738997c11
Add a regression test for x86-64 red zone usage.
...
llvm-svn: 63075
2009-01-27 00:40:27 +00:00
Dan Gohman
1cd2a2c9f8
Fix the Red Zone calculation for functions with frame pointers.
...
Don't use the Red Zone when dynamic stack realignment is needed.
This could be implemented, but most x86-64 ABIs don't require
dynamic stack realignment so it isn't urgent.
llvm-svn: 63074
2009-01-27 00:40:06 +00:00
Evan Cheng
b8c79bdc31
No need to keep size of DebugLocations vector separately.
...
llvm-svn: 63070
2009-01-26 23:47:30 +00:00
Dale Johannesen
03490f0ce1
Testcase for 6522054.
...
llvm-svn: 63067
2009-01-26 23:22:19 +00:00
Scott Michel
49483188c3
CellSPU:
...
- Update DWARF debugging support.
llvm-svn: 63059
2009-01-26 22:33:37 +00:00
Scott Michel
3789a13c30
Make the Dwarf macro information section optional; CellSPU's assembler
...
doesn't support it. The default is set to 'true', so this should not
impact any other target backends.
llvm-svn: 63058
2009-01-26 22:32:51 +00:00
Dan Gohman
b6d36e1d14
Implement Red Zone utilization on x86-64. This is currently
...
disabled by default; I'll enable it when I hook it up with
the llvm-gcc flag which controls it.
llvm-svn: 63056
2009-01-26 22:22:31 +00:00
Steve Naroff
8cf220398b
More updates to VC proj...
...
llvm-svn: 63050
2009-01-26 22:03:42 +00:00
Owen Anderson
e84c3f261e
Reapply r63025 and r63026, with fixes for the failing testcases.
...
llvm-svn: 63049
2009-01-26 21:57:31 +00:00
Duncan Sands
d77e476921
Fix PR3393, which amounts to a bug in the expensive
...
checking logic. Rather than make the checking more
complicated, I've tweaked some logic to make things
conform to how the checking thought things ought to
be, since this results in a simpler "mental model".
llvm-svn: 63048
2009-01-26 21:54:18 +00:00
Ted Kremenek
a26699211d
Add method raw_fd_ostream::seek() for random access within a file.
...
llvm-svn: 63044
2009-01-26 21:42:04 +00:00
Dan Gohman
ac272eaf13
At Nick Lewycky's request, rename this test with a more informative name.
...
llvm-svn: 63042
2009-01-26 21:36:31 +00:00
Bill Wendling
e7fa3c37c6
Also revert r63206
...
llvm-svn: 63041
2009-01-26 21:30:17 +00:00
Bill Wendling
a39c83d118
Temporarily revert r63025 until the testsuite failures can be fixed.
...
llvm-svn: 63040
2009-01-26 21:27:03 +00:00
Dan Gohman
0b46005b19
Fix the name of an argument.
...
llvm-svn: 63037
2009-01-26 20:27:11 +00:00
Anton Korobeynikov
4b4622454c
During bittest switch lowering emit shift in the test block, which should (theoretically)
...
allow us to generate more efficient code. We don't do this now though :)
llvm-svn: 63027
2009-01-26 19:26:01 +00:00
Owen Anderson
5e235d3a7e
Get rid of a bunch of dead code now that interval reconstruction is enabled.
...
llvm-svn: 63026
2009-01-26 19:18:06 +00:00
Owen Anderson
feffdec244
Fix an issue where LiveIntervals was trying to be smart about removing kill
...
markers, and ended up foiling the interval reconstruction.
This allows us to turn on reconstruction in the pre alloc splitter, which
fixes a number of miscompilations.
llvm-svn: 63025
2009-01-26 19:12:06 +00:00
Evan Cheng
6c7e85142b
Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside callseq_start to allow it to be folded into a call. It was not considering the cases where a token factor is between the load and the callseq_start.
...
llvm-svn: 63022
2009-01-26 18:43:34 +00:00
Evan Cheng
72287a599f
Silence a bogus compiler warning.
...
llvm-svn: 63021
2009-01-26 18:33:51 +00:00
Steve Naroff
0113928f94
Update VS project files.
...
llvm-svn: 63017
2009-01-26 18:08:55 +00:00
Roman Levenstein
179dd918b9
Fix a bug in BitVector.h. All assignment operations (except the usual
...
assignment operator) were returning a copy of the bit vector, instead of a
reference! This old semantics probably did not meet the expectations.
With this patch, chained assignments happen to the right object.
llvm-svn: 63012
2009-01-26 11:07:20 +00:00
Evan Cheng
4e6871da09
Actually source file has already been uniquified into an id during isel. Eliminate the StringMap.
...
llvm-svn: 63009
2009-01-26 07:53:42 +00:00
Evan Cheng
b5706c45fa
Add data structure to define and track debug location during codegen.
...
llvm-svn: 63008
2009-01-26 07:41:49 +00:00
Evan Cheng
fd0ab12327
Looks like comments were chopped off.
...
llvm-svn: 63007
2009-01-26 07:40:13 +00:00
Evan Cheng
3975bbec58
LLVM_SUPPORT_DEBUGINFO_H -> LLVM_ANALYSIS_DEBUGINFO_H since DebugInfo.h is under Analysis.
...
llvm-svn: 63005
2009-01-26 07:31:20 +00:00
Mon P Wang
3537a62704
Fixed optimization of combining two shuffles where the first shuffle inputs
...
has a different number of elements than the output.
llvm-svn: 62998
2009-01-26 04:39:00 +00:00
Dan Gohman
8e4ac9b71a
Take the next steps in making SDUse more consistent with LLVM Use, and
...
tidy up SDUse and related code.
- Replace the operator= member functions with a set method, like
LLVM Use has, and variants setInitial and setNode, which take
care up updating use lists, like LLVM Use's does. This simplifies
code that calls these functions.
- getSDValue() is renamed to get(), as in LLVM Use, though most
places can either use the implicit conversion to SDValue or the
convenience functions instead.
- Fix some more node vs. value terminology issues.
Also, eliminate the one remaining use of SDOperandPtr, and
SDOperandPtr itself.
llvm-svn: 62995
2009-01-26 04:35:06 +00:00
Scott Michel
95b2a206ee
Untabify code.
...
llvm-svn: 62991
2009-01-26 03:37:41 +00:00
Scott Michel
9e3e4a9219
CellSPU:
...
- Rename fcmp.ll test to fcmp32.ll, start adding new double tests to fcmp64.ll
- Fix select_bits.ll test
- Capitulate to the DAGCombiner and move i64 constant loads to instruction
selection (SPUISelDAGtoDAG.cpp).
<rant>DAGCombiner will insert all kinds of 64-bit optimizations after
operation legalization occurs and now we have to do most of the work that
instruction selection should be doing twice (once to determine if v2i64
build_vector can be handled by SelectCode(), which then runs all of the
predicates a second time to select the necessary instructions.) But,
CellSPU is a good citizen.</rant>
llvm-svn: 62990
2009-01-26 03:31:40 +00:00
Nate Begeman
624801e87e
Fix a typo
...
llvm-svn: 62989
2009-01-26 03:15:54 +00:00
Nate Begeman
a2550a8e96
De-identifying per sabre review
...
llvm-svn: 62988
2009-01-26 03:15:31 +00:00
Nick Lewycky
5c8fc9d549
Build libLTO on any platform so long as PIC is enabled.
...
llvm-svn: 62987
2009-01-26 03:04:57 +00:00
Nate Begeman
7ea4e861ca
Add some documentation for address-space-based access to the segment registers.
...
llvm-svn: 62986
2009-01-26 02:54:45 +00:00
Chris Lattner
9449991c4f
Handle single-entry phi nodes gracefully in condprop.
...
llvm-svn: 62985
2009-01-26 02:18:20 +00:00
Chris Lattner
7b6647c178
Fix PR3408 by making a non-obvious assumption very obvious, and
...
handling the flaw inherent in that assumption. :)
llvm-svn: 62984
2009-01-26 02:11:30 +00:00
Chris Lattner
57cb472b56
More cleanups and simplifications, no functionality change.
...
llvm-svn: 62983
2009-01-26 01:57:01 +00:00
Chris Lattner
d67aaa6560
tidy asserts
...
llvm-svn: 62982
2009-01-26 01:38:24 +00:00
Nate Begeman
5eca265519
Map address space 256 to gs; similar mappings could be supported for the
...
other x86 segments. address space 0 is stack/default, 1-255 are reserved for
client use.
llvm-svn: 62980
2009-01-26 01:24:32 +00:00
Nate Begeman
8a51d8c8f7
Support pattern matching various x86 sse shifts.
...
llvm-svn: 62979
2009-01-26 00:52:55 +00:00
Chris Lattner
80b283c1cd
silence a warning when assertions are disabled.
...
llvm-svn: 62976
2009-01-25 23:08:00 +00:00
Torok Edwin
692ed0f67d
should have removed the + when manually applying a patch!
...
llvm-svn: 62973
2009-01-25 20:29:34 +00:00
Torok Edwin
97be2f5840
revert this patch for now, because Codegen does still want to generate SSE code,
...
for example in the case of va-args. XFAIL associated tests.
llvm-svn: 62972
2009-01-25 20:21:24 +00:00
Torok Edwin
3cc1940003
testcase for llvm-gcc part of PR3402.
...
llvm-svn: 62969
2009-01-25 18:00:06 +00:00
Torok Edwin
a23c73bbdc
If user explicitly asks not to use SSE, don't force it. This fixes LLVM part of PR3402.
...
llvm-svn: 62967
2009-01-25 17:58:56 +00:00
Dan Gohman
f1d38be265
Eliminate the loop that searches through each of the operands
...
of each use in the SelectionDAG ReplaceAllUses* functions. Thanks
to Chris for spotting this opportunity.
Also, factor out code from all 5 of the ReplaceAllUses* functions
into AddNonLeafNodeToCSEMaps, which is now renamed
AddModifiedNodeToCSEMaps to more accurately reflect its purpose.
llvm-svn: 62964
2009-01-25 16:29:12 +00:00
Dan Gohman
3a113ec468
Whitespace tidiments.
...
llvm-svn: 62963
2009-01-25 16:21:38 +00:00
Dan Gohman
e7b0dde2ee
Move the N->use_empty() assert from DeleteNode to
...
DeleteNodeNotInCSEMaps, since DeleteNode just calls
DeleteNodeNotInCSEMaps.
llvm-svn: 62962
2009-01-25 16:20:37 +00:00
Dan Gohman
e3f2278de1
Reality-check the FAQ entry for "Can I use LLVM to convert C++ to C?"
...
llvm-svn: 62961
2009-01-25 16:04:50 +00:00
Nick Lewycky
21add8f983
Start generating arbitrary precision integer SCEVs. This removes the temporary
...
code that rounded up and capped the size.
llvm-svn: 62958
2009-01-25 08:16:27 +00:00
Nick Lewycky
cb7a10ab63
Actually run the test in this directory.
...
llvm-svn: 62957
2009-01-25 08:05:07 +00:00
Nick Lewycky
5647c5d1a4
The function that does nothing but call malloc is noalias return.
...
llvm-svn: 62956
2009-01-25 07:59:57 +00:00
Evan Cheng
1c7c019229
Private linkage support for PPC / Darwin.
...
llvm-svn: 62955
2009-01-25 06:32:01 +00:00
Evan Cheng
abda665f5f
Teach 2addr pass to be do more commuting. If both uses of a two-address instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue.
...
%reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1
%reg1029<def> = MOV8rr %reg1028
%reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead>
insert => %reg1030<def> = MOV8rr %reg1028
%reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead>
In this case, it might not be possible to coalesce the second MOV8rr
instruction if the first one is coalesced. So it would be profitable to
commute it:
%reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1
%reg1029<def> = MOV8rr %reg1028
%reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead>
insert => %reg1030<def> = MOV8rr %reg1029
%reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead>
llvm-svn: 62954
2009-01-25 03:53:59 +00:00
Nate Begeman
b09b0242ca
Fix an indent and a typo.
...
llvm-svn: 62940
2009-01-24 22:12:48 +00:00
Dale Johannesen
2b3389a626
Revert previous change; even this mild and clearly
...
more accurate change loses more than it gains on
benchmarks.
llvm-svn: 62938
2009-01-24 21:49:34 +00:00
Torok Edwin
3cedd4dc64
add note about possible GEP improvement with fields of size 0.
...
llvm-svn: 62925
2009-01-24 19:30:25 +00:00
Dan Gohman
73fd5a5651
Add a PR comment to this test.
...
llvm-svn: 62921
2009-01-24 17:32:54 +00:00
Torok Edwin
f4395ea97a
testcase for PR3381.
...
Also it was an empty struct, not a void after all.
llvm-svn: 62920
2009-01-24 17:16:04 +00:00
Dan Gohman
142ccc0e15
Add more documentation mentioning the limitations due to PR2660.
...
llvm-svn: 62919
2009-01-24 15:58:40 +00:00
Torok Edwin
73ff92272f
void* is represented as pointer to empty struct {}.
...
Thus we need to check whether the struct is empty before trying to index into
it. This fixes PR3381.
llvm-svn: 62918
2009-01-24 11:30:49 +00:00
Owen Anderson
ee34b8f179
Some cleanups. No functional changes.
...
llvm-svn: 62917
2009-01-24 10:07:43 +00:00
Dale Johannesen
899ecdbbba
Improve the inlining cost function a bit.
...
Little practical effect.
llvm-svn: 62908
2009-01-24 01:27:33 +00:00
Chris Lattner
72cd68fe64
Make InstCombineStoreToCast handle aggregates more aggressively,
...
handling the case in Transforms/InstCombine/cast-store-gep.ll, which
is a heavily reduced testcase from Clang on x86-64.
llvm-svn: 62904
2009-01-24 01:00:13 +00:00
Mike Stump
82221d62a9
Perform optional clang building.
...
llvm-svn: 62895
2009-01-24 00:00:41 +00:00
Evan Cheng
6d8970695b
Refactor code. No functionality change.
...
llvm-svn: 62893
2009-01-23 23:27:33 +00:00
Devang Patel
ccfacfff9a
Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, DW_AT_APPLE_flags.
...
DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way.
DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by a project, irrespective of whether the project used makefile, Xcode or something else.
llvm-gcc patch is next.
llvm-svn: 62888
2009-01-23 22:33:47 +00:00
Chris Lattner
832959536a
hopefully address PR3379 by making the P modifier work in x86 inline asm.
...
llvm-svn: 62887
2009-01-23 22:33:40 +00:00
Devang Patel
486d309b34
Fix test case. Use valid file name and directory in global variable's debug info entry.
...
llvm-svn: 62883
2009-01-23 21:54:18 +00:00
Gabor Greif
59c431347f
use CallSite::isCalle instead of slow getOperandNo
...
llvm-svn: 62877
2009-01-23 21:17:04 +00:00
Gabor Greif
eb61fcf2a1
Simplify the logic of getting hold of a PHI predecessor block.
...
There is now a direct way from value-use-iterator to incoming block in PHINode's API.
This way we avoid the iterator->index->iterator trip, and especially the costly
getOperandNo() invocation. Additionally there is now an assertion that the iterator
really refers to one of the PHI's Uses.
llvm-svn: 62869
2009-01-23 19:40:15 +00:00
Nate Begeman
617001d842
Add support for deleting a module provider from a JIT in such a way that it does not cause the owned module to be fully materialized.
...
llvm-svn: 62864
2009-01-23 19:27:28 +00:00
Devang Patel
dd7aa37895
Empty DIType represents void. In this case no need to construct any type DIE.
...
llvm-svn: 62861
2009-01-23 19:13:31 +00:00
Dan Gohman
1275e28ded
Fold x-0 to x in unsafe-fp-math mode. This comes up in the
...
testcase from PR3376, and in fact is sufficient to completely
avoid the problem in that testcase.
There's an underlying problem though; TLI.isOperationLegal
considers Custom to be Legal, which might be ok in some
cases, but that's what DAGCombiner is using in many places
to test if something is legal when LegalOperations is true.
When DAGCombiner is running after legalize, this isn't
sufficient. I'll address this in a separate commit.
llvm-svn: 62860
2009-01-23 19:10:37 +00:00
Duncan Sands
d4aae43e79
Patch to build llvm with srcdir != objdir from
...
llvm-top. By Michael Schuerig, with some small
tweaks to make the "don't configure if already
configured" logic work.
llvm-svn: 62842
2009-01-23 08:42:38 +00:00
Chris Lattner
3f4591c89f
fix two more cases where we could let the NLPDI cache get unsorted.
...
With this, sqlite3 now passes.
llvm-svn: 62839
2009-01-23 07:12:16 +00:00
Chris Lattner
e3ea48c71e
Unconditionally reset 'cache' to zero, even if we don't need to resort it.
...
This avoids using a dangling pointer.
Reset NumSortedEntries after restoring Cache to avoid extraneous sorts.
This fixes the reduced sqlite3 testcase, but apparently not the whole app.
llvm-svn: 62838
2009-01-23 06:48:41 +00:00
Evan Cheng
9db227999a
Only check if coalescing is worthwhile when the result is targeting a more restrictive register class.
...
llvm-svn: 62837
2009-01-23 05:48:59 +00:00
Evan Cheng
f347c3615b
Update test to reflect command line option name change.
...
llvm-svn: 62836
2009-01-23 05:45:31 +00:00
Owen Anderson
a2ca64a39a
Stage two of fixing pre-alloc-splitting's code size issues: filter out restores that are just
...
going to be re-spilled again.
This also helps performance. Pre-alloc-splitting now seems to be an overall win on SPEC.
llvm-svn: 62834
2009-01-23 03:28:53 +00:00
Evan Cheng
ab7bf14fb4
Cross register class coalescing. Not yet enabled.
...
llvm-svn: 62832
2009-01-23 02:15:19 +00:00
Devang Patel
7d537c23c1
Code did not follow associated comment. not a good idea.
...
llvm-svn: 62828
2009-01-23 01:25:58 +00:00
Devang Patel
4c8f55abda
Set appropriate tag for the composite type.
...
llvm-svn: 62827
2009-01-23 01:19:09 +00:00
Chris Lattner
706d40e662
a minor tweak to my previous patch, handle the invalidation case
...
when there are multiple iterations of the loop. This fixes PR3375.
llvm-svn: 62822
2009-01-23 00:27:03 +00:00
Owen Anderson
48abf2380b
Add an initial pass at dead spill/restore removal for pre alloc splitting.
...
llvm-svn: 62821
2009-01-23 00:23:32 +00:00
Chris Lattner
1f9053a83c
do not sign extend characters input to isprint. This improves
...
compatibility with VC++. Patch by Max Burke!
llvm-svn: 62813
2009-01-22 23:38:45 +00:00
Steve Naroff
0681693277
Handful of fixes to the VC project files.
...
llvm-svn: 62807
2009-01-22 23:05:37 +00:00
Bob Wilson
c2dc7ee5d0
Fix a minor bug in DAGCombiner's folding of SELECT. Folding "select C, 0, 1"
...
to "C ^ 1" is only valid when C is known to be either 0 or 1. Most of the
similar foldings in this function only handle "i1" types, but this one appears
intentionally written to handle larger integer types. If C has an integer
type larger than "i1", this needs to check if the high bits of a boolean
are known to be zero. I also changed the comment to describe this folding as
"C ^ 1" instead of "~C", since that is what the code does and since the latter
would only be valid for "i1" types. The good news is that most LLVM targets
use TargetLowering::ZeroOrOneBooleanContent so this change will not disable
the optimization; the bad news is that I've been unable to come up with a
testcase to demonstrate the problem.
I have also removed a "FIXME" comment for folding "select C, X, 0" to "C & X",
since the code looks correct to me. It could be made more aggressive by not
limiting the type to "i1", but that would then require checking for
TargetLowering::ZeroOrNegativeOneBooleanContent. Similar changes could be
done for the other SELECT foldings, but it was decided to be not worth the
trouble and complexity (see e.g., r44663).
llvm-svn: 62790
2009-01-22 22:05:48 +00:00
Dan Gohman
1f3411de47
Don't create ISD::FNEG nodes after legalize if they aren't legal.
...
Simplify x+0 to x in unsafe-fp-math mode. This avoids a bunch of
redundant work in many cases, because in unsafe-fp-math mode,
ISD::FADD with a constant is considered free to negate, so the
DAGCombiner often negates x+0 to -0-x thinking it's free, when
in reality the end result is -x, which is more expensive than x.
Also, combine x*0 to 0.
This fixes PR3374.
llvm-svn: 62789
2009-01-22 21:58:43 +00:00
Gabor Greif
f4013373cd
introduce a useful abstraction to find out if a Use is in the call position of an instruction
...
llvm-svn: 62788
2009-01-22 21:35:57 +00:00
Tanya Lattner
483e12e09e
Regenerated configure after backing out 62553 and r62616.
...
llvm-svn: 62778
2009-01-22 20:11:17 +00:00
Tanya Lattner
9a8602ce50
Revert r62553 and r62616 due to issues with portability.
...
llvm-svn: 62777
2009-01-22 20:09:20 +00:00
Chris Lattner
aa1212271a
rename methods in System/Host to be more consistent.
...
llvm-svn: 62776
2009-01-22 19:53:00 +00:00
Devang Patel
dec7fe2e71
Do not use buggy llvm-gcc to generate testcases.
...
llvm-svn: 62770
2009-01-22 18:28:11 +00:00
Bob Wilson
c58900504b
Add SelectionDAG::getNOT method to construct bitwise NOT operations,
...
corresponding to the "not" and "vnot" PatFrags. Use the new method
in some places where it seems appropriate.
llvm-svn: 62768
2009-01-22 17:39:32 +00:00
Duncan Sands
e3a26635fb
Remove no-longer relevant comment. Pointed out
...
by Gabor.
llvm-svn: 62765
2009-01-22 15:37:29 +00:00
Duncan Sands
ac6f7eeb05
This passes on linux.
...
llvm-svn: 62764
2009-01-22 15:07:15 +00:00
Sanjiv Gupta
4186ddfc5a
Few targets like the tiny little PIC16 have only 16-bit pointers.
...
llvm-svn: 62763
2009-01-22 10:14:21 +00:00
Evan Cheng
4a0bf66eb8
Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.
...
llvm-svn: 62762
2009-01-22 09:10:11 +00:00
Chris Lattner
e09d631d8e
fix a typo
...
llvm-svn: 62761
2009-01-22 07:21:55 +00:00
Chris Lattner
705ac7082b
add a note
...
llvm-svn: 62760
2009-01-22 07:16:03 +00:00
Chris Lattner
bed6be62e4
fix a testcase.
...
llvm-svn: 62758
2009-01-22 07:08:58 +00:00
Chris Lattner
f09619d533
Fix PR3358, a really nasty bug where recursive phi translated
...
analyses could be run without the caches properly sorted. This
can fix all sorts of weirdness. Many thanks to Bill for coming
up with the 'issorted' verification idea.
llvm-svn: 62757
2009-01-22 07:04:01 +00:00
Tanya Lattner
c4b1d8295d
Bump to 2.6svn.
...
Regenerate configure (last regen was with the wrong version).
llvm-svn: 62751
2009-01-22 05:17:59 +00:00
Chris Lattner
9fc809e980
Make tblgen more portable, allowing it to build with ICC.
...
Patch by Robert Zeh!
llvm-svn: 62750
2009-01-22 05:10:16 +00:00
Mike Stump
f7a16e9380
Don't create .dir files in installation directories. Switch to using
...
order-only dependancies for installation directories.
llvm-svn: 62746
2009-01-22 03:24:22 +00:00
Bill Wendling
8d176ed95b
The operator<() and operator>() were reversing their tests. Have the test the correct way.
...
llvm-svn: 62745
2009-01-22 03:05:10 +00:00
Bill Wendling
08bebedbab
Get rid of warning about implicit 64-to-32 bit conversions.
...
llvm-svn: 62741
2009-01-22 02:10:33 +00:00
Dan Gohman
a5127abeec
Add a few more notes about LLVM IR features that codegen doesn't
...
yet support.
llvm-svn: 62739
2009-01-22 01:39:38 +00:00
Oscar Fuentes
244d369d53
CMake: Tests PERL availability with PERL_EXECUTABLE variable.
...
On MSVC 64bits, does not put underscore before the symbol name on the
/INCLUDE linker parameter.
llvm-svn: 62738
2009-01-22 01:20:31 +00:00
Steve Naroff
1019bdef0c
Add explicit this-> (to make the VS compiler happy).
...
llvm-svn: 62731
2009-01-21 23:49:23 +00:00
Dan Gohman
31dd016f81
Recognize inline asm for bswap on x86-64 GLIBC. This allows it
...
to be supported in the JIT.
llvm-svn: 62730
2009-01-21 23:40:54 +00:00
Douglas Gregor
3041abd608
Fix ilist two-phase name lookup
...
llvm-svn: 62724
2009-01-21 22:38:44 +00:00
Dan Gohman
d776b6e51d
Fix a missing word.
...
llvm-svn: 62720
2009-01-21 21:54:44 +00:00
Dan Gohman
01d7dd8607
Versions of VIM included with Intrepid and Leopard at least appear
...
to handle symlinks just fine, so reword the instructions in the
README accordingly.
llvm-svn: 62719
2009-01-21 21:52:42 +00:00
Dan Gohman
3155533003
Enable syntax highlighting of LLVM and tablegen files by default,
...
so that users don't have to copy text from the README to get this.
llvm-svn: 62718
2009-01-21 21:47:51 +00:00
Dan Gohman
455be5a0a0
Only set cindent for C and C++ source files.
...
llvm-svn: 62717
2009-01-21 21:30:25 +00:00
Bill Wendling
6cf1f8fd5b
Now with RUN line.
...
llvm-svn: 62716
2009-01-21 21:28:03 +00:00
Bill Wendling
ba11cd338b
Run this through -simplifycfg and -mem2reg to test only what we need to test.
...
llvm-svn: 62714
2009-01-21 21:02:27 +00:00
Dan Gohman
922bf52e8e
Add a comment to SelectionDAG::ReplaceAllUsesWith to describe a subtle
...
iteraction with SelectionDAG CSE.
llvm-svn: 62713
2009-01-21 20:50:09 +00:00
Dale Johannesen
1f86498f93
Do not use host floating point types when emitting
...
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts. Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.
llvm-svn: 62712
2009-01-21 20:32:55 +00:00
Evan Cheng
ec5eb161fd
Also favors NOT64r.
...
llvm-svn: 62710
2009-01-21 19:45:31 +00:00
Chris Lattner
a326520190
fix warning in release-asserts mode and spelling of assert.
...
llvm-svn: 62699
2009-01-21 18:38:18 +00:00
Chris Lattner
41b43da217
add getPointerToGlobal to the C bindings, patch by Lennart Augustsson!
...
PR3364
llvm-svn: 62697
2009-01-21 18:11:10 +00:00
Chris Lattner
77527f5812
Remove uses of uint32_t in favor of 'unsigned' for better
...
compatibility with cygwin. Patch by Jay Foad!
llvm-svn: 62695
2009-01-21 18:09:24 +00:00
Dan Gohman
7e6b932f18
Simplify ReduceLoadWidth's logic: it doesn't need several different
...
special cases after producing the new reduced-width load, because the
new load already has the needed adjustments built into it. This fixes
several bugs due to the special cases, including PR3317.
llvm-svn: 62692
2009-01-21 15:17:51 +00:00
Dan Gohman
b43c8996f2
Fix a recent regression. ClrOpcode is not set for i8; for i8, if
...
we want to clear %ah to zero before a division, just use a
zero-extending mov to %al. This fixes PR3366.
llvm-svn: 62691
2009-01-21 14:50:16 +00:00
Mikhail Glushenkov
6a4f729dc9
Mimic gcc behaviour with regard to response files.
...
llvm-svn: 62688
2009-01-21 13:14:02 +00:00
Mikhail Glushenkov
1a0c083748
Fix 'llvm-config --libs' output.
...
Change the naming scheme for llvmc plugins so that they do not appear in
'llvm-config --libs' output.
llvm-svn: 62687
2009-01-21 13:05:00 +00:00
Mikhail Glushenkov
fbc89cecad
Change the hook API back to prevent memory leaks.
...
llvm-svn: 62686
2009-01-21 13:04:33 +00:00
Mikhail Glushenkov
bf9716e15d
Allow hooks with arguments.
...
llvm-svn: 62685
2009-01-21 13:04:00 +00:00
Duncan Sands
d56cf3025f
This was causing invalid memory accesses when
...
generating debug info in the compiler.
llvm-svn: 62684
2009-01-21 11:51:17 +00:00
Duncan Sands
1de451d0d0
Let's try to have our cake and eat it to: move
...
this test into FrontendC to ensure that llvm-gcc
is available; assemble using "llvm-gcc -xassembler"
rather than "as".
llvm-svn: 62683
2009-01-21 11:37:31 +00:00
Duncan Sands
696f4a8598
Don't rely on grep -w working.
...
llvm-svn: 62682
2009-01-21 09:41:42 +00:00
Sanjiv Gupta
335ea6cf2a
Fixed build warnings. Restoring changes done in 62600, they were lost in 62655.
...
llvm-svn: 62681
2009-01-21 09:02:46 +00:00
Duncan Sands
be7e41481b
Cleanup whitespace and comments, and tweak some
...
prototypes, in operand type legalization. No
functionality change.
llvm-svn: 62680
2009-01-21 09:00:29 +00:00
Owen Anderson
fe48dfa0f2
I accidentally removed this check in an earlier commit, which cause breakage in the pre alloc splitter.
...
llvm-svn: 62678
2009-01-21 08:18:03 +00:00
Sanjiv Gupta
f737337707
Implement LowerOperationWrapper for legalizer.
...
Also a few signed comparison fixes.
llvm-svn: 62665
2009-01-21 05:44:05 +00:00
Scott Michel
ed7d79fce4
CellSPU:
...
- Ensure that (operation) legalization emits proper FDIV libcall when needed.
- Fix various bugs encountered during llvm-spu-gcc build, along with various
cleanups.
- Start supporting double precision comparisons for remaining libgcc2 build.
Discovered interesting DAGCombiner feature, which is currently solved via
custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner
insists on inserting one anyway.)
- Update README.
llvm-svn: 62664
2009-01-21 04:58:48 +00:00
Sanjiv Gupta
a70798cc9a
Allow targets to legalize operations (with illegal operands) that produces multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain).
...
llvm-svn: 62663
2009-01-21 04:48:39 +00:00
Evan Cheng
201501995f
Favors generating "not" over "xor -1". For example.
...
unsigned test(unsigned a) {
return ~a;
}
llvm used to generate:
movl $4294967295, %eax
xorl 4(%esp), %eax
Now it generates:
movl 4(%esp), %eax
notl %eax
It's 3 bytes shorter.
llvm-svn: 62661
2009-01-21 02:09:05 +00:00
Dale Johannesen
287b4bc44e
Disable on x86_64 until I figure out what's wrong.
...
llvm-svn: 62660
2009-01-21 02:08:30 +00:00
Dale Johannesen
b5721632ee
Make special cases (0 inf nan) work for frem.
...
Besides APFloat, this involved removing code
from two places that thought they knew the
result of frem(0., x) but were wrong.
llvm-svn: 62645
2009-01-21 00:35:19 +00:00
Owen Anderson
be7a29de0b
Be more aggressive about renumbering vregs after splitting them.
...
llvm-svn: 62639
2009-01-21 00:13:28 +00:00
Devang Patel
19f2dd794e
Encode member accessibility.
...
llvm-svn: 62638
2009-01-21 00:08:04 +00:00
Devang Patel
6bbacbe372
Appropriately mark fowrad decls.
...
llvm-svn: 62625
2009-01-20 22:27:02 +00:00
Devang Patel
6fbec1c230
Need compile unit to find location.
...
llvm-svn: 62624
2009-01-20 22:26:11 +00:00
Dale Johannesen
e75fdb0510
Calls to fmod, it turns out, are constant-folded by
...
invoking the host fmod, not by lowering to frem and
constant-folding that. Fix this so it tests what I
want to test.
llvm-svn: 62622
2009-01-20 21:58:13 +00:00
Chris Lattner
f8a8c13c1e
Don't bother running the assembler, we don't know that it will be configured
...
for whatever llc defaults to. This fixes PR3363
llvm-svn: 62619
2009-01-20 21:41:53 +00:00
Evan Cheng
f1e873a221
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref.
...
llvm-svn: 62617
2009-01-20 21:25:12 +00:00
Duncan Sands
363501d09b
Fix typo. Patch by Alexei Svitkine.
...
llvm-svn: 62616
2009-01-20 21:20:23 +00:00
Bill Wendling
2395916c87
Use "SINT_TO_FP" instead of "UINT_TO_FP" when getting the exponent. This was
...
causing the limited precision stuff to produce the wrong result for values in
the range [0, 1).
llvm-svn: 62615
2009-01-20 21:17:57 +00:00
Devang Patel
bd7743d772
Fix struct member's debug info.
...
llvm-svn: 62610
2009-01-20 21:02:02 +00:00
Evan Cheng
4022b7c3f4
Add test case for PR3154.
...
llvm-svn: 62604
2009-01-20 19:29:54 +00:00
Devang Patel
bf7c6a90f5
indentation...
...
llvm-svn: 62603
2009-01-20 19:23:29 +00:00
Devang Patel
2333409d06
Need only one set of debug info versions enum.
...
llvm-svn: 62602
2009-01-20 19:22:03 +00:00
Evan Cheng
c544cb0eca
Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well.
...
llvm-svn: 62600
2009-01-20 19:12:24 +00:00
Devang Patel
72854c3811
zap white spaces.
...
llvm-svn: 62598
2009-01-20 19:08:39 +00:00
Devang Patel
6befc4d34e
Fix global variable's address in a DIE.
...
llvm-svn: 62596
2009-01-20 18:55:39 +00:00
Devang Patel
f0dae1aae3
Enable debug info for enums.
...
llvm-svn: 62594
2009-01-20 18:35:14 +00:00
Dale Johannesen
fe750179ff
Add an IEEE remainder function, which is not
...
fully implemented yet and not used. This is
mainly to clarify that APFloat::mod implements
C fmod, not remainder.
llvm-svn: 62593
2009-01-20 18:35:05 +00:00
Chris Lattner
17844c7a88
improve compatibility with various versions of graphviz, patch by
...
Patrick Boettcher!
llvm-svn: 62592
2009-01-20 18:25:03 +00:00
Chris Lattner
ca4881aeca
eliminate use of uint32_t to improve compatibility with cygwin
...
llvm-svn: 62591
2009-01-20 18:23:14 +00:00
Chris Lattner
4612ae1f8e
Eliminate use of uint32_t to improve compatibility with cygwin
...
llvm-svn: 62590
2009-01-20 18:22:57 +00:00
Devang Patel
120e962243
Enable debug info for composite types.
...
llvm-svn: 62589
2009-01-20 18:13:03 +00:00
Duncan Sands
489c5484d3
Check that the "don't barf on k8" fix is not
...
accidentally reverted again.
llvm-svn: 62587
2009-01-20 18:08:39 +00:00
Evan Cheng
63f9e249ba
Spacing
...
llvm-svn: 62584
2009-01-20 17:30:40 +00:00
Bill Wendling
a908b60fb2
Temporarily XFAIL until this can be looked at. r62557 is what caused it to start failing.
...
llvm-svn: 62578
2009-01-20 10:28:39 +00:00
Duncan Sands
cd3fbfb460
If a vector is empty, you're not allowed to access any
...
elements, even if it is only to take the address. Test:
break-anti-dependencies.ll with ENABLE_EXPENSIVE_CHECKS.
llvm-svn: 62576
2009-01-20 09:05:19 +00:00
Evan Cheng
6cdcf1eb73
Refactor code. No functionality change.
...
llvm-svn: 62573
2009-01-20 06:44:16 +00:00
Bill Wendling
1d9c8e5522
Testcase for limited precision stuff.
...
llvm-svn: 62572
2009-01-20 06:23:59 +00:00
Bill Wendling
786a683441
Shift types need to match.
...
llvm-svn: 62571
2009-01-20 06:10:42 +00:00
Chris Lattner
c59945b4bd
another fix for PR3354
...
llvm-svn: 62561
2009-01-20 01:15:41 +00:00
Dan Gohman
83d2e066c1
Add a README entry noticed while investigating PR3216.
...
llvm-svn: 62558
2009-01-20 01:07:33 +00:00
Dan Gohman
161b7b66ac
Fix a dagcombine to not generate loads of non-round integer types,
...
as its comment says, even in the case where it will be generating
extending loads. This fixes PR3216.
llvm-svn: 62557
2009-01-20 01:06:45 +00:00
Devang Patel
af6a3748c7
Do not use DenseMap because the iterator is invalidated while constructing types. After all there was a reason why std::map was used initially!
...
llvm-svn: 62555
2009-01-20 00:58:55 +00:00
Nick Lewycky
c94134dc96
Regenerate.
...
BUILT WITH WRONG VERSION OF AUTOCONF! Somebody please regenerate with an
approved version. Thanks!
llvm-svn: 62554
2009-01-20 00:52:24 +00:00
Nick Lewycky
766ac10452
Make the Interpreter use libffi if it's available. Patch from Alexei Svitkine!
...
This requires a rebuild of 'configure' itself. I will be committing that next, but
built with the wrong version of autoconf. Somebody who has the right one, please update
it.
As a side-note, because of the way autoconf works, all built tools will link against
libffi, not just lli. If you know how to fix this, please let me know ...
llvm-svn: 62553
2009-01-20 00:51:40 +00:00
Evan Cheng
8f79775a66
Make linear scan's trivial coalescer slightly more aggressive.
...
llvm-svn: 62547
2009-01-20 00:16:18 +00:00
Bill Wendling
caf1d22243
Doxygen-ify comments.
...
llvm-svn: 62546
2009-01-19 23:43:56 +00:00
Devang Patel
44afc82ebe
Verify debug info.
...
llvm-svn: 62545
2009-01-19 23:21:49 +00:00
Chris Lattner
ea9f1d3c47
Fix a problem exposed by PR3354: simplifycfg was making a potentially
...
trapping instruction be executed unconditionally.
llvm-svn: 62541
2009-01-19 23:03:13 +00:00
Dan Gohman
534c8a2d72
Remove SDNode's virtual destructor. This makes it impossible for
...
SDNode subclasses to keep state that requires non-trivial
destructors, however it was already effectively impossible,
since the destructor isn't actually ever called. There currently
aren't any SDNode subclasses affected by this, and in general
it's desireable to keep SDNode objects light-weight.
This eliminates the last virtual member function in the SDNode
class, so it eliminates the need for a vtable pointer, making
SDNode smaller.
llvm-svn: 62539
2009-01-19 22:39:36 +00:00
Dale Johannesen
d067ecd1c7
Move & restructure test per review.
...
llvm-svn: 62538
2009-01-19 22:33:12 +00:00
Chris Lattner
7eeb1cc605
convert this to an unfoldable potentially trapping constant expr.
...
llvm-svn: 62536
2009-01-19 22:12:33 +00:00
Chris Lattner
73d7fe5a34
improve compatibility with cygwin, patch by Jay Foad!
...
llvm-svn: 62535
2009-01-19 22:00:18 +00:00
Chris Lattner
dd8ef1bf30
div/rem by zero and div/rem overflow are both undefined according to
...
langref. Constant fold them to undef instead of trying to preserve
the trap. This fixes PR3354.
llvm-svn: 62534
2009-01-19 21:55:26 +00:00
Dan Gohman
cd0b1bf0a0
Fix SelectionDAG::ReplaceAllUsesWith to behave correctly when
...
uses are added to the From node while it is processing From's
use list, because of automatic local CSE. The fix is to avoid
visiting any new uses.
Fix a few places in the DAGCombiner that assumed that after
a RAUW call, the From node has no users and may be deleted.
This fixes PR3018.
llvm-svn: 62533
2009-01-19 21:44:21 +00:00
Chris Lattner
6f34e317e9
Fix PR3353, infinitely jump threading an infinite loop make from switches.
...
llvm-svn: 62529
2009-01-19 21:20:34 +00:00
Dale Johannesen
740e98704d
compile-time fmod was done incorrectly. PR 3316.
...
llvm-svn: 62528
2009-01-19 21:17:05 +00:00
Devang Patel
db3c05533c
DebugInfo is a lightweight APIs and consumers are expected to use light objects directly. There is no need to support isa<>, dyn_cast<> etc...
...
llvm-svn: 62527
2009-01-19 21:13:39 +00:00
Devang Patel
8c8aa2ac29
Verify Intrinsic::dbg_declare.
...
llvm-svn: 62526
2009-01-19 21:00:48 +00:00
Mike Stump
eb1e2006de
Add targets to support the installation of clang in isolation.
...
llvm-svn: 62522
2009-01-19 19:48:23 +00:00
Evan Cheng
44cc554311
DIVREM isel deficiency: If sign bit is known zero, zero out DX/EDX/RDX instead of sign extending the low part (in AX/EAX/RAX) into it.
...
llvm-svn: 62519
2009-01-19 19:06:11 +00:00
Evan Cheng
0346c04f39
Fix 80 col violations.
...
llvm-svn: 62518
2009-01-19 18:57:29 +00:00
Evan Cheng
6c02498215
Handle ISD::DECLARE with PIC relocation model.
...
llvm-svn: 62516
2009-01-19 18:31:51 +00:00
Nick Lewycky
ee22611e33
Port this test from dejagnu to unit testing.
...
The way this worked before was to test APInt by running
"lli -force-interpreter=true" knowing the lli uses APInt under the hood to
store its values. Now, we test APInt directly.
llvm-svn: 62514
2009-01-19 18:08:33 +00:00
Nick Lewycky
030c450fdc
Fix typo, sentence fragment.
...
llvm-svn: 62512
2009-01-19 17:42:33 +00:00
Dan Villiom Podlaski Christiansen
faad4168f9
Adding your's truly to CREDITS.TXT
...
(This is also a test commit.)
llvm-svn: 62511
2009-01-19 15:04:29 +00:00
Bill Wendling
534d2e0bae
Temporarily revert r62487. It's causing this error during a release bootstrap of
...
llvm-gcc. Most likely, it's miscompiling one of the "gen*" programs:
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./prev-gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.6.0/bin/ -c -g -O2 -mdynamic-no-pic -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -mdynamic-no-pic -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/build -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -o build/gencondmd.o build/gencondmd.c
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: excess elements in struct initializer
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: warning: (near initialization for 'insn_conditions[4]')
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected '}' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:926: error: expected ',' or ';' before ')' token
../../llvm-gcc.src/gcc/config/i386/mmx.md:927: error: expected identifier or '(' before ',' token
../../llvm-gcc.src/gcc/config/i386/sse.md:3458: error: expected identifier or '(' before ',' token
...
llvm-svn: 62506
2009-01-19 08:46:20 +00:00
Evan Cheng
8f367e53c7
Minor tweak to LowerUINT_TO_FP_i32. Bias (after scalar_to_vector) has two uses so we should make it the second source operand of ISD::OR so 2-address pass won't have to be smart about commuting.
...
%reg1024<def> = MOVSDrm %reg0, 1, %reg0, <cp#0>, Mem:LD(8,8) [ConstantPool + 0]
%reg1025<def> = MOVSD2PDrr %reg1024
%reg1026<def> = MOVDI2PDIrm <fi#-1>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack-1 + 0]
%reg1027<def> = ORPSrr %reg1025<kill>, %reg1026<kill>
%reg1028<def> = MOVPD2SDrr %reg1027<kill>
%reg1029<def> = SUBSDrr %reg1028<kill>, %reg1024<kill>
%reg1030<def> = CVTSD2SSrr %reg1029<kill>
MOVSSmr <fi#0>, 1, %reg0, 0, %reg1030<kill>, Mem:ST(4,4) [FixedStack0 + 0]
%reg1031<def> = LD_Fp32m80 <fi#0>, 1, %reg0, 0, Mem:LD(4,16) [FixedStack0 + 0]
RET %reg1031<kill>, %ST0<imp-use,kill>
The reason 2-addr pass isn't smart enough to commute the ORPSrr is because it can't look pass the MOVSD2PDrr instruction.
llvm-svn: 62505
2009-01-19 08:19:57 +00:00
Evan Cheng
7e9ef4d776
Now not UINT_TO_FP is legal (it's marked custom), dag combiner won't
...
optimize it to a SINT_TO_FP when the sign bit is known zero. X86 isel should perform the optimization itself.
llvm-svn: 62504
2009-01-19 08:08:22 +00:00
Chris Lattner
f2bb4ea39c
Fix PR3016, a bug which can occur do to an invalid assumption:
...
we assumed a CFG structure that would be valid when all code in
the function is reachable, but not all code is necessarily
reachable. Do a simple, but horrible, CFG walk to check for this
case.
llvm-svn: 62487
2009-01-19 02:46:28 +00:00
Chris Lattner
e381d7026f
reduce indentation by using 'continue', no functionality change.
...
llvm-svn: 62477
2009-01-19 02:07:32 +00:00
Chris Lattner
54f0c61d71
Fix some problems in SpeculativelyExecuteBB. Basically,
...
because of dead code, a phi could use the speculated instruction
that was not in "BB2". Make this check explicit and tighten up
some other corners. This fixes PR3292. No testcase becauase this
depends entirely on visitation order of blocks and requires a
sequence of 8 passes to repro.
llvm-svn: 62476
2009-01-19 00:36:37 +00:00
Chris Lattner
e1c01e4e2b
Make this a bit more explicit about which cases need the
...
check. No functionality change.
llvm-svn: 62474
2009-01-18 23:22:07 +00:00
Chris Lattner
64b7bd7f9e
Fix rdar://6505632, an llc crash on 483.xalancbmk
...
llvm-svn: 62470
2009-01-18 20:35:00 +00:00
Sanjiv Gupta
1d2fc787a9
Few targets like PIC16 wants libcall generation for illegal type i16.
...
llvm-svn: 62467
2009-01-18 18:25:27 +00:00
Oscar Fuentes
963c975975
CMake: Add lib/Analysis/CaptureTracking.cpp
...
llvm-svn: 62462
2009-01-18 13:14:11 +00:00
Duncan Sands
e0aa0d677d
BasicAliasAnalysis and FunctionAttrs were both
...
doing very similar pointer capture analysis.
Factor out the common logic. The new version
is from FunctionAttrs since it does a better
job than the version in BasicAliasAnalysis
llvm-svn: 62461
2009-01-18 12:19:30 +00:00
Mon P Wang
e9e7abb6b8
Simplify extract element based on comments from Duncan Sands.
...
llvm-svn: 62459
2009-01-18 06:43:40 +00:00
Nick Lewycky
e5be1cd635
Forgot this in the previous checkin: fopen now has nocapture, realloc is
...
supposed to take two arguments.
llvm-svn: 62457
2009-01-18 04:46:10 +00:00
Nick Lewycky
3ced0dfa69
Fix copy and pasted typos that prevented strtok_r, realloc, getenv, ungetc,
...
putc, puts, perror, vscanf and vsscanf from getting annotations.
Add annotations for eight printf functions, memalign, pread and pwrite.
On Linux, llvm-gcc sometimes renames strdup, getc, putc, strtok_r, scanf and
sscanf. Match the alternate function names.
Fix a crash annotating opendir.
Don't mark fsetpos's second parameter as nocapture. It's supposed to be
captured.
Do mark fopen's path and mode strings as nocapture. Mark ferror as readonly,
but not fileno which may set errno.
llvm-svn: 62456
2009-01-18 04:34:36 +00:00
Gabor Greif
1b94d420ae
add a comment
...
llvm-svn: 62436
2009-01-18 00:27:21 +00:00
Gabor Greif
20b722fe1c
switch over some other methods from indices to iterators
...
llvm-svn: 62430
2009-01-17 19:46:01 +00:00
Gabor Greif
2269f405b0
make comparisons a bist faster
...
llvm-svn: 62428
2009-01-17 19:03:45 +00:00
Devang Patel
3f634fe364
Remove tabs.
...
llvm-svn: 62423
2009-01-17 08:05:14 +00:00
Devang Patel
8ee1c9f220
Refactor code
...
llvm-svn: 62421
2009-01-17 08:01:33 +00:00
Bill Wendling
9880a2cb2f
Testcase for last commit.
...
llvm-svn: 62418
2009-01-17 07:42:44 +00:00
Bill Wendling
f9291cf43c
Extend thi
...
llvm-svn: 62415
2009-01-17 07:40:19 +00:00
Evan Cheng
bf38a5e540
Fix MatchAddress bug that's preventing negative displacement from being folded in 64-bit mode.
...
llvm-svn: 62413
2009-01-17 07:09:27 +00:00
Devang Patel
bf7d432ce4
Assign argument type to appropriate DIE.
...
llvm-svn: 62412
2009-01-17 06:57:25 +00:00
Devang Patel
2e32f71dfa
Remove dead code.
...
llvm-svn: 62410
2009-01-17 06:51:37 +00:00
Devang Patel
d250ef911f
Disable composite type debug info for now.
...
llvm-svn: 62406
2009-01-17 05:05:12 +00:00
Bill Wendling
dd40f26877
Temporarily revert my last change. It is causing a bootstrap failure.
...
llvm-svn: 62405
2009-01-17 04:23:51 +00:00
Bill Wendling
4d5275905e
Implement a special algorithm for converting uint_to_fp for i32 values on
...
X86. This code:
void f() {
uint32_t x;
float y = (float)x;
}
used to be:
movl %eax, -8(%ebp)
movl [2^52 double], -4(%ebp)
movsd -8(%ebp), %xmm0
subsd [2^52 double], %xmm0
cvtsd2ss %xmm0, %xmm0
Is now:
movsd [2^52 double], %xmm0
movsd %xmm0, %xmm1
movd %ecx, %xmm2
orps %xmm2, %xmm1
subsd %xmm0, %xmm1
cvtsd2ss %xmm1, %xmm0
This is faster on X86. Note that there's an extra load of %xmm0 into %xmm1. That
will be fixed in a later coalescer fix.
llvm-svn: 62404
2009-01-17 03:56:04 +00:00
Oscar Fuentes
90cc7050f2
CMake: Add lib/Target/IA64/IA64Subtarget.cpp
...
llvm-svn: 62394
2009-01-17 01:50:32 +00:00
Gabor Greif
1c6549db6f
speed up iterative loop by using iterators. changes direction, but functionally equivalent
...
if this works out, I'll change the others next.
llvm-svn: 62385
2009-01-17 00:14:25 +00:00
Gabor Greif
f1abfdccdc
introduce typedef for complicated vector, and use it too
...
llvm-svn: 62384
2009-01-17 00:09:08 +00:00
Mon P Wang
ca6d6dea0b
Simplify extract element of a scalar to vector.
...
llvm-svn: 62383
2009-01-17 00:07:25 +00:00
Gabor Greif
8c573f7e49
typo
...
llvm-svn: 62377
2009-01-16 23:08:50 +00:00
Evan Cheng
41e9f6a854
Fix PPC ISD::Declare isel and eliminate the need for PPCTargetLowering::LowerGlobalAddress to check if isVerifiedDebugInfoDesc() is true. Given the recent changes, it would falsely return true for a lot of GlobalAddressSDNode's.
...
llvm-svn: 62373
2009-01-16 22:57:32 +00:00
Mikhail Glushenkov
cbc26fdb6e
Support for multi-valued options in CommandLine
...
Makes possible to specify options that take multiple arguments (a-la
-sectalign on Darwin). See documentation for details.
llvm-svn: 62372
2009-01-16 22:54:19 +00:00
Dan Gohman
703a6c7274
Give IA64 a TargetSubtarget subclass, so that it can
...
implement getSubtargetImpl.
llvm-svn: 62369
2009-01-16 22:49:36 +00:00
Dan Gohman
5f8a2598b2
Instead of adding dependence edges between terminator instructions
...
and every other instruction in their blocks to keep the terminator
instructions at the end, teach the post-RA scheduler how to operate
on ranges of instructions, and exclude terminators from the range
of instructions that get scheduled.
Also, exclude mid-block labels, such as EH_LABEL instructions, and
schedule code before them separately from code after them. This
fixes problems with the post-RA scheduler moving code past
EH_LABELs.
llvm-svn: 62366
2009-01-16 22:10:20 +00:00
Dan Gohman
157e008816
If an anti-dependence uses a non-allocatable register, set AntiDepReg
...
to 0, to ensure that the subsequent code doesn't try to break the
dependence.
llvm-svn: 62365
2009-01-16 21:57:43 +00:00
Dan Gohman
38978ba972
Use the getNode() accessor instead of accessing the Node
...
member directly, which is private as of r55504.
llvm-svn: 62364
2009-01-16 21:47:21 +00:00
Dan Gohman
f1002495e3
Disable the post-RA scheduler on this test, since it uses a
...
simple %prcontext which doesn't find what it's looking for
if the scheduler has rearranged the instructions.
llvm-svn: 62363
2009-01-16 21:40:12 +00:00
Dan Gohman
014142fd1a
Fix the check for an empty basic block to check for an empty SUnits
...
array instead, since this is what the scheduler actually cares about.
And remove a check that is unnecessary, since it can assume that
SUnits isn't empty.
llvm-svn: 62362
2009-01-16 21:37:14 +00:00
Dan Gohman
3289983d69
Avoid triggering an assertion failure when an instruction pattern
...
is a leaf node. Patch by Brandner!
llvm-svn: 62361
2009-01-16 21:30:55 +00:00
Chris Lattner
41828cdb0a
new nodes should be added to the worklist, not old nodes.
...
llvm-svn: 62359
2009-01-16 21:15:56 +00:00
Devang Patel
5d7813cb2d
Fix comments.
...
llvm-svn: 62358
2009-01-16 21:07:53 +00:00
Evan Cheng
968e2e7b3d
CreateVirtualRegisters does trivial copy coalescing. If a node def is used by a single CopyToReg, it reuses the virtual register assigned to the CopyToReg. This won't work for SDNode that is a clone or is itself cloned. Disable this optimization for those nodes or it can end up with non-SSA machine instructions.
...
llvm-svn: 62356
2009-01-16 20:57:18 +00:00
Chris Lattner
6bfc77d8fe
remove a dead method.
...
llvm-svn: 62354
2009-01-16 20:26:53 +00:00
Chris Lattner
762edbc074
don't assert and die on out of range (undefined) shifts. This fixes
...
PR3334.
llvm-svn: 62352
2009-01-16 20:17:02 +00:00
Chris Lattner
db2d9613d2
Fix PR3335 by not turning a store to one address space into a store to another.
...
llvm-svn: 62351
2009-01-16 20:12:52 +00:00
Chris Lattner
733256fe31
reduce indentation by using early exits, no functionality change.
...
llvm-svn: 62350
2009-01-16 20:08:59 +00:00
Devang Patel
0d733b5d9f
Use lightweight DebugInfo objects directly.
...
llvm-svn: 62341
2009-01-16 19:28:14 +00:00
Bill Wendling
e04334730e
Add support for non-zero __builtin_return_address values on X86.
...
llvm-svn: 62338
2009-01-16 19:25:27 +00:00
Evan Cheng
5f936ef1ac
Change isGVCompilationDisabled() semantics again. It should abort on any GV that's not constant whether it's "internal" or not. In a server / client environment, GV is returned in the same block of memory as code. However, the memory might not be writable.
...
llvm-svn: 62336
2009-01-16 19:14:49 +00:00
Gabor Greif
4b79e47f94
use specialized accessor instead of plain getOperand(0)
...
llvm-svn: 62330
2009-01-16 18:40:27 +00:00
Devang Patel
867df54606
Align source code.
...
llvm-svn: 62328
2009-01-16 18:01:58 +00:00
Dan Gohman
b903071735
Fix a "comparison between signed and unsigned integer expressions"
...
warning.
llvm-svn: 62327
2009-01-16 17:55:08 +00:00
Nick Lewycky
032e6dd3c5
Reinstate r60509 from Dale:
...
Make the debugging dump be a full line.
llvm-svn: 62325
2009-01-16 17:07:22 +00:00
Duncan Sands
230c35eda2
Get this building with gcc-4.4.
...
llvm-svn: 62322
2009-01-16 15:54:57 +00:00
Duncan Sands
35e43c12f1
Grammar fix.
...
llvm-svn: 62319
2009-01-16 09:29:46 +00:00
Mikhail Glushenkov
6e8d814d36
Registry.h should not depend on CommandLine.h.
...
Split Support/Registry.h into two files so that we have less to
recompile every time CommandLine.h is changed.
llvm-svn: 62312
2009-01-16 07:02:28 +00:00
Evan Cheng
2d9e40ed24
This is now passing.
...
llvm-svn: 62308
2009-01-16 06:59:14 +00:00
Mikhail Glushenkov
b2f9a73029
Delete trailing whitespace.
...
llvm-svn: 62307
2009-01-16 06:53:46 +00:00
Sanjiv Gupta
3227928eeb
Reverting back 62301.
...
llvm-svn: 62304
2009-01-16 05:06:35 +00:00
Sanjiv Gupta
30bd194504
Few targets do not have a single directive to emit global constants.
...
For example, PIC16 needs to break a long or int constant into mulitple parts and emit multiple directives. So Allow targets to overried EmitConstantValueOnly().
llvm-svn: 62301
2009-01-16 02:45:46 +00:00
Evan Cheng
d243c0e3d9
ARMCompilationCallback should not save / restore vfp registers if vfp is not available.
...
llvm-svn: 62299
2009-01-16 02:16:37 +00:00
Devang Patel
e067a7988c
Validate debug info values only if DwarfDebug is initialized.
...
llvm-svn: 62298
2009-01-16 02:15:14 +00:00
Evan Cheng
beac6f8b0c
Clean up previous cast optimization a bit. Also make zext elimination a bit more aggressive: if it's not necessary to emit an AND (i.e. high bits are already zero), it's profitable to evaluate the operand at a different type.
...
llvm-svn: 62297
2009-01-16 02:11:43 +00:00
Dan Gohman
3e35fe8968
Add support for instructions with multiple ComplexPatterns, by
...
adding more information to the temporary variables names so that
they don't conflict.
llvm-svn: 62296
2009-01-16 02:05:52 +00:00
Devang Patel
32fed1c0ef
Any debug info symbol is only valid if atleast one compile unit is seen.
...
llvm-svn: 62294
2009-01-16 01:49:46 +00:00
Dan Gohman
ceac7c34f1
Initial hazard recognizer support in post-pass scheduling. This includes
...
a new toy hazard recognizier heuristic which attempts to direct the
scheduler to avoid clumping large groups of loads or stores too densely.
llvm-svn: 62291
2009-01-16 01:33:36 +00:00
Devang Patel
fa1b408b3b
Do not stumble over forward declared struct member.
...
llvm-svn: 62288
2009-01-16 00:50:53 +00:00
Devang Patel
76d190cf4a
Validate dbg_* intrinsics before lowering them.
...
llvm-svn: 62286
2009-01-15 23:41:32 +00:00
Mon P Wang
e248edff1b
Added missing support to widen an operand from a bit convert.
...
llvm-svn: 62285
2009-01-15 22:43:38 +00:00
Dan Gohman
7e105f0b12
Generalize the HazardRecognizer interface so that it can be used
...
to support MachineInstr-based scheduling in addition to
SDNode-based scheduling.
llvm-svn: 62284
2009-01-15 22:18:12 +00:00
Dan Gohman
79618d1de8
Simplify the MachineLICM pass by having it only traverse outer
...
loops, hoisting instructions all the way out in one step rather
than hoisting them one nest level at a time. Also, make a few
other code simplifications. This speeds up MachineLICM
by several fold.
llvm-svn: 62283
2009-01-15 22:01:38 +00:00
Rafael Espindola
f2831d6cd1
Fix Alpha test and support for private linkage.
...
llvm-svn: 62282
2009-01-15 21:51:46 +00:00
Mon P Wang
ebfafee903
Expand insert/extract of a <4 x i32> with a variable index.
...
llvm-svn: 62281
2009-01-15 21:10:20 +00:00
Rafael Espindola
6de96a1b5d
Add the private linkage.
...
llvm-svn: 62279
2009-01-15 20:18:42 +00:00
Devang Patel
851cdaf1fd
Use lightweight DebugInfo objects directly.
...
llvm-svn: 62276
2009-01-15 19:26:23 +00:00
Dan Gohman
619ef48a52
Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph
...
and into the ScheduleDAGInstrs class, so that they don't get
destructed and re-constructed for each block. This fixes a
compile-time hot spot in the post-pass scheduler.
To help facilitate this, tidy and do some minor reorganization
in the scheduler constructor functions.
llvm-svn: 62275
2009-01-15 19:20:50 +00:00
Nuno Lopes
04fe2f0a95
add comment to explain my previous commit, as asked by Chris
...
llvm-svn: 62272
2009-01-15 18:40:57 +00:00
Gabor Greif
5aa1922614
avoid using iterators when they get invalidated potentially
...
this fixes PR3332
llvm-svn: 62271
2009-01-15 18:40:09 +00:00
Devang Patel
8bdc698336
Use variable's context to identify respective DbgScope.
...
Use light weight DebugInfo object directly.
llvm-svn: 62269
2009-01-15 18:25:17 +00:00
Dan Gohman
dbb22a4483
Add load-folding table entries for BT*ri8 instructions.
...
llvm-svn: 62267
2009-01-15 17:57:09 +00:00
Dan Gohman
307954ac69
Make getWidenVectorType const; this file was missed in the
...
previous commit.
llvm-svn: 62266
2009-01-15 17:39:39 +00:00
Dan Gohman
0ad43ca6e5
Make getWidenVectorType const.
...
llvm-svn: 62265
2009-01-15 17:34:08 +00:00
Evan Cheng
ff716cb342
Eliminate a redundant check.
...
llvm-svn: 62264
2009-01-15 17:09:07 +00:00
Evan Cheng
60e19a46f2
- Teach CanEvaluateInDifferentType of this xform: sext (zext ty1), ty2 -> zext ty2
...
- Looking at the number of sign bits of the a sext instruction to determine whether new trunc + sext pair should be added when its source is being evaluated in a different type.
llvm-svn: 62263
2009-01-15 17:01:23 +00:00
Dan Gohman
91febd1330
More consts on TargetLowering references.
...
llvm-svn: 62262
2009-01-15 16:58:17 +00:00
Dan Gohman
4bdf021e05
Use const with TargetLowering references in a few more places.
...
llvm-svn: 62260
2009-01-15 16:43:02 +00:00
Dan Gohman
02b93136e9
Const-qualify getPreIndexedAddressParts and friends.
...
llvm-svn: 62259
2009-01-15 16:29:45 +00:00
Richard Osborne
40119780a8
Don't fold address calculations which use negative offsets into
...
the ADDRspii addressing mode.
llvm-svn: 62258
2009-01-15 11:32:30 +00:00
Richard Osborne
502b91a35c
Update the operands used when building LDAWSP instructions to match the .td
...
changes in the last commit.
llvm-svn: 62257
2009-01-15 11:18:53 +00:00
Gabor Greif
08a4c281cb
minor refactoring: use a more specific API
...
llvm-svn: 62256
2009-01-15 11:10:44 +00:00
Scott Michel
a292fc6d6b
- Convert remaining i64 custom lowering into custom instruction emission
...
sequences in SPUDAGToDAGISel.cpp and SPU64InstrInfo.td, killing custom
DAG node types as needed.
- i64 mul is now a legal instruction, but emits an instruction sequence
that stretches tblgen and the imagination, as well as violating laws of
several small countries and most southern US states (just kidding, but
looking at a function with 80+ parameters is really weird and just plain
wrong.)
- Update tests as needed.
llvm-svn: 62254
2009-01-15 04:41:47 +00:00
Mikhail Glushenkov
bc39dff6e5
Some small documentation fixes.
...
llvm-svn: 62251
2009-01-15 02:42:40 +00:00
Mikhail Glushenkov
bf78b20490
Clarify the documentation a bit.
...
llvm-svn: 62249
2009-01-15 02:04:54 +00:00
Chris Lattner
8fb9480ed2
Fix PR3325, a miscompilation of invokes by IPSCCP. Patch by Jay Foad!
...
llvm-svn: 62244
2009-01-14 21:01:16 +00:00