Commit Graph

26839 Commits

Author SHA1 Message Date
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
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 1b6a3bce82 Add DebugLoc to the getNode() methods.
llvm-svn: 63245
2009-01-28 22:17:52 +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
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
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 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 5a685a52c1 Add shuffle splat pattern for x86 sse shifts.
llvm-svn: 63193
2009-01-28 08:12:05 +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
Evan Cheng e4510972a6 Suppress a compile time warning.
llvm-svn: 63161
2009-01-28 00:53:34 +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
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
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
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
Dan Gohman 7740523a89 Eliminate unnecessary operands-list traversals.
llvm-svn: 63088
2009-01-27 02:37:43 +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 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
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
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
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
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