oota-llvm.git
13 years agotypo
Chris Lattner [Thu, 13 Jan 2011 22:11:56 +0000 (22:11 +0000)]
typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123406 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomemcpy + metadata = bliss :)
Chris Lattner [Thu, 13 Jan 2011 22:08:15 +0000 (22:08 +0000)]
memcpy + metadata = bliss :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123405 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support to the ARM MC infrastructure to support mcr and friends. This requires...
Owen Anderson [Thu, 13 Jan 2011 21:46:02 +0000 (21:46 +0000)]
Add support to the ARM MC infrastructure to support mcr and friends. This requires supporting
the symbolic immediate names used for these instructions, fixing their pretty-printers, and
adding proper encoding information for them.

With this, we can properly pretty-print and encode assembly like:
mrc p15, #0, r3, c13, c0, #3

Fixes <rdar://problem/8857858>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123404 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRelax an assertion. On archs like ARM, an immediate field may be scattered. So it...
Evan Cheng [Thu, 13 Jan 2011 21:45:26 +0000 (21:45 +0000)]
Relax an assertion. On archs like ARM, an immediate field may be scattered. So it's possible for some bits of every 8 bits to be encoded already, and the rest still needs to be fixed up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123403 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTemporary workaround for an i386 crash in LiveDebugVariables.
Jakob Stoklund Olesen [Thu, 13 Jan 2011 21:28:55 +0000 (21:28 +0000)]
Temporary workaround for an i386 crash in LiveDebugVariables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123400 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach frame lowering to ignore debug values after the terminators.
Jakob Stoklund Olesen [Thu, 13 Jan 2011 21:28:52 +0000 (21:28 +0000)]
Teach frame lowering to ignore debug values after the terminators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123399 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTidy comments, indentation, and 80-column violations.
Bob Wilson [Thu, 13 Jan 2011 21:10:12 +0000 (21:10 +0000)]
Tidy comments, indentation, and 80-column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123397 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix whitespace.
Bob Wilson [Thu, 13 Jan 2011 20:59:44 +0000 (20:59 +0000)]
Fix whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123396 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix ARMAsmParser::ParseOperand() to allow it to parse . as a branch target and
Kevin Enderby [Thu, 13 Jan 2011 20:32:36 +0000 (20:32 +0000)]
Fix ARMAsmParser::ParseOperand() to allow it to parse . as a branch target and
directional local labels like 1f and 2b.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123393 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLittle help to debug the bugpoint itself.
Devang Patel [Thu, 13 Jan 2011 19:48:54 +0000 (19:48 +0000)]
Little help to debug the bugpoint itself.
Patch by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123390 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSpeculatively revert r123384 to make llvm-gcc-i386-linux-selfhost buildbot happy.
Devang Patel [Thu, 13 Jan 2011 19:27:50 +0000 (19:27 +0000)]
Speculatively revert r123384  to make llvm-gcc-i386-linux-selfhost buildbot happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123389 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd some platform tests.
Oscar Fuentes [Thu, 13 Jan 2011 19:17:28 +0000 (19:17 +0000)]
Add some platform tests.

Patch by arrowdodger!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123388 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen updating a tSpill/tRestore instruction to be a tSTRr/tLDRr, correctly
Jim Grosbach [Thu, 13 Jan 2011 19:16:48 +0000 (19:16 +0000)]
When updating a tSpill/tRestore instruction to be a tSTRr/tLDRr, correctly
set up the source operands. The original instr has an immediate operand that
should be replaced with the frame reg operand rather than just adding the
reg operand. Previously, the instruction ended up with too many operands
causing an assert() when adding the default predicate. rdar://8825456

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123387 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach MachineBasicBlock::getFirstTerminator to ignore debug values.
Jakob Stoklund Olesen [Thu, 13 Jan 2011 18:41:05 +0000 (18:41 +0000)]
Teach MachineBasicBlock::getFirstTerminator to ignore debug values.

It will still return an iterator that points to the first terminator or end(),
but there may be DBG_VALUE instructions following the first terminator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123384 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCheck for empty structs, and for consistency, zero-element arrays.
Bob Wilson [Thu, 13 Jan 2011 18:26:59 +0000 (18:26 +0000)]
Check for empty structs, and for consistency, zero-element arrays.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123383 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtend SROA to handle arrays accessed as homogeneous structs and vice versa.
Bob Wilson [Thu, 13 Jan 2011 17:45:11 +0000 (17:45 +0000)]
Extend SROA to handle arrays accessed as homogeneous structs and vice versa.

This is a minor extension of SROA to handle a special case that is
important for some ARM NEON operations.  Some of the NEON intrinsics
return multiple values, which are handled as struct types containing
multiple elements of the same vector type.  The corresponding return
types declared in the arm_neon.h header have equivalent arrays.  We
need SROA to recognize that it can split up those arrays and structs
into separate vectors, even though they are not always accessed with
the same type.  SROA already handles loads and stores of an entire
alloca by using insertvalue/extractvalue to access the individual
pieces, and that code works the same regardless of whether the type
is a struct or an array.  So, all that needs to be done is to check
for compatible arrays and homogeneous structs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123381 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake SROA more aggressive with allocas containing padding.
Bob Wilson [Thu, 13 Jan 2011 17:45:08 +0000 (17:45 +0000)]
Make SROA more aggressive with allocas containing padding.

SROA only split up structs and arrays one level at a time, so padding can
only cause trouble if it is located in between the struct or array elements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123380 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDisable RTTI when building unit tests. This avoids errors at link time.
Oscar Fuentes [Thu, 13 Jan 2011 15:31:45 +0000 (15:31 +0000)]
Disable RTTI when building unit tests. This avoids errors at link time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123377 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPlatform tests for argz_* functions.
Oscar Fuentes [Thu, 13 Jan 2011 15:06:32 +0000 (15:06 +0000)]
Platform tests for argz_* functions.

Patch by arrowdodger!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123376 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove some wrong code which fortunately was never executed (as explained in
Duncan Sands [Thu, 13 Jan 2011 10:43:08 +0000 (10:43 +0000)]
Remove some wrong code which fortunately was never executed (as explained in
the comment I added): an extern weak global may have a null address.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123373 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe most common simplification missed by instsimplify in unoptimized bitcode
Duncan Sands [Thu, 13 Jan 2011 08:56:29 +0000 (08:56 +0000)]
The most common simplification missed by instsimplify in unoptimized bitcode
is "X != 0 -> X" when X is a boolean.  This occurs a lot because of the way
llvm-gcc converts gcc's conditional expressions.  Add this, and a few other
similar transforms for completeness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123372 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoModel :upper16: and :lower16: as ARM specific MCTargetExpr. This is a step
Evan Cheng [Thu, 13 Jan 2011 07:58:56 +0000 (07:58 +0000)]
Model :upper16: and :lower16: as ARM specific MCTargetExpr. This is a step
in the right direction. It eliminated some hacks and will unblock codegen
work. But it's far from being done. It doesn't reject illegal expressions,
e.g. (FOO - :lower16:BAR). It also doesn't work in Thumb2 mode at all.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123369 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExperiment with changing the default 32-bit linux stack alignment to
Eric Christopher [Thu, 13 Jan 2011 06:47:10 +0000 (06:47 +0000)]
Experiment with changing the default 32-bit linux stack alignment to
16 bytes for PR8969. Update all testcases accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123367 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoKeep unnamed_addr when linking.
Rafael Espindola [Thu, 13 Jan 2011 05:12:34 +0000 (05:12 +0000)]
Keep unnamed_addr when linking.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123364 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReject uses of unnamed_addr in declarations.
Rafael Espindola [Thu, 13 Jan 2011 01:30:30 +0000 (01:30 +0000)]
Reject uses of unnamed_addr in declarations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123358 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a FIXME and two asserts for now in the ARMAsmParser when it sees .code 16 or
Kevin Enderby [Thu, 13 Jan 2011 01:07:01 +0000 (01:07 +0000)]
Add a FIXME and two asserts for now in the ARMAsmParser when it sees .code 16 or
.code 32 if the TargetMachine's isThumb() boolean does not match.  The correct
fix is to switch ARM subtargets at that point and is tracked by rdar://8856789
which is bigger task.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123353 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix r123346 to handle scalar types too.
Dan Gohman [Thu, 13 Jan 2011 01:06:51 +0000 (01:06 +0000)]
Fix r123346 to handle scalar types too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123352 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing space in debug output
Jakob Stoklund Olesen [Thu, 13 Jan 2011 00:57:35 +0000 (00:57 +0000)]
Add missing space in debug output

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123351 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange call to Error() to assert()
Jason W Kim [Thu, 13 Jan 2011 00:27:00 +0000 (00:27 +0000)]
Change call to Error() to assert()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123350 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStyle clean up - break up the breaks.
Jason W Kim [Thu, 13 Jan 2011 00:07:51 +0000 (00:07 +0000)]
Style clean up - break up the breaks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123347 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoApply the patch from PR8958, which allows llc to get slightly
Dan Gohman [Wed, 12 Jan 2011 23:56:26 +0000 (23:56 +0000)]
Apply the patch from PR8958, which allows llc to get slightly
further on the associated testcase before aborting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123346 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink.
Michael J. Spencer [Wed, 12 Jan 2011 23:55:06 +0000 (23:55 +0000)]
Support/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123345 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTry again enabling LiveDebugVariables.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 23:36:21 +0000 (23:36 +0000)]
Try again enabling LiveDebugVariables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123342 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdded clarifying comment
Jason W Kim [Wed, 12 Jan 2011 23:25:02 +0000 (23:25 +0000)]
Added clarifying comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123341 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoJimG sez: "The value-kinds look like masks, but they're not consistently used
Jason W Kim [Wed, 12 Jan 2011 23:21:49 +0000 (23:21 +0000)]
JimG sez: "The value-kinds look like masks, but they're not consistently used
that way, unfortunately. If you want to change them to work additively instead
of a one-variant-kind-per-symbolref, that's great and I completely agree it's
worth doing, but it really should be a separate patch. Until then, this isn't
correct."

So I am reverting this bit until a more opportune time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123340 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't emit a DBG_VALUE for a spill slot that the rewriter decided not to use after...
Jakob Stoklund Olesen [Wed, 12 Jan 2011 23:14:07 +0000 (23:14 +0000)]
Don't emit a DBG_VALUE for a spill slot that the rewriter decided not to use after all.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123339 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix braino in dominator tree walk.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 23:14:04 +0000 (23:14 +0000)]
Fix braino in dominator tree walk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123338 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSometimes, old virtual registers can linger on DBG_VALUE instructions.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 22:37:49 +0000 (22:37 +0000)]
Sometimes, old virtual registers can linger on DBG_VALUE instructions.

Make sure we don't crash in that case, but simply turn them into %noreg instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123335 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach VirtRegRewriter to update slot indexes when erasing instructions.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 22:28:51 +0000 (22:28 +0000)]
Teach VirtRegRewriter to update slot indexes when erasing instructions.

It was leaving dangling pointers in the slot index maps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123334 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAnnotate VirtRegRewriter debug output with slot indexes.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 22:28:48 +0000 (22:28 +0000)]
Annotate VirtRegRewriter debug output with slot indexes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123333 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoVerify slot index ordering.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 21:27:48 +0000 (21:27 +0000)]
Verify slot index ordering.

The slot indexes must be monotonically increasing through the function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123324 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAssert if anybody tries to put a slot index on a DBG_VALUE instruction.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 21:27:45 +0000 (21:27 +0000)]
Assert if anybody tries to put a slot index on a DBG_VALUE instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123323 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoVerify that machine instruction parent pointers are consistent.
Jakob Stoklund Olesen [Wed, 12 Jan 2011 21:27:41 +0000 (21:27 +0000)]
Verify that machine instruction parent pointers are consistent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123322 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSort the register list based on the *actual* register numbers rather than the
Bill Wendling [Wed, 12 Jan 2011 21:20:59 +0000 (21:20 +0000)]
Sort the register list based on the *actual* register numbers rather than the
enum values we give to them. <rdar://problem/8823730>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123321 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse SmallVector instead of SmallPtrSet and avoid non-deterministic behavior.
Devang Patel [Wed, 12 Jan 2011 19:12:45 +0000 (19:12 +0000)]
Use SmallVector instead of SmallPtrSet and avoid non-deterministic behavior.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123318 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMostly undo r123297, but move the default case in EvaluateAsPCRel to the top
Matt Beaumont-Gay [Wed, 12 Jan 2011 18:02:55 +0000 (18:02 +0000)]
Mostly undo r123297, but move the default case in EvaluateAsPCRel to the top
of the switch block to appease GCC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123317 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd another note taken from the gcc bugzilla.
Nick Lewycky [Wed, 12 Jan 2011 09:06:19 +0000 (09:06 +0000)]
Add another note taken from the gcc bugzilla.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123315 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement RETURNADDR and FRAMEADDR lowering in SPARC backend.
Venkatraman Govindaraju [Wed, 12 Jan 2011 05:08:36 +0000 (05:08 +0000)]
Implement RETURNADDR and FRAMEADDR lowering in SPARC backend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123310 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove SPARC backend getpcx instruction's Uses. Also, insert an assert to
Venkatraman Govindaraju [Wed, 12 Jan 2011 03:52:59 +0000 (03:52 +0000)]
Remove SPARC backend getpcx instruction's Uses. Also, insert an assert to
ensure %o7 is not assigned as the destination of getpcx instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123304 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorevert 123144, reenabling the rest of memset formation.
Chris Lattner [Wed, 12 Jan 2011 03:25:15 +0000 (03:25 +0000)]
revert 123144, reenabling the rest of memset formation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123302 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix SPARC backend call instruction so that arguments passed through registers
Venkatraman Govindaraju [Wed, 12 Jan 2011 03:18:21 +0000 (03:18 +0000)]
Fix SPARC backend call instruction so that arguments passed through registers
are correctly marked as used instead of passing all possible argument registers
as used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123301 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorevert r123146 which disabled code that wasn't the root cause
Chris Lattner [Wed, 12 Jan 2011 01:52:23 +0000 (01:52 +0000)]
revert r123146 which disabled code that wasn't the root cause
of the bootstrap miscompare issue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123299 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorevert r123149, reenabling an improvement to memcpyopt that wasn't
Chris Lattner [Wed, 12 Jan 2011 01:43:46 +0000 (01:43 +0000)]
revert r123149, reenabling an improvement to memcpyopt that wasn't
the source of the bootstrap problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123298 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPrefer llvm_unreachable to assert(0)
Matt Beaumont-Gay [Wed, 12 Jan 2011 01:42:42 +0000 (01:42 +0000)]
Prefer llvm_unreachable to assert(0)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123297 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago1. Support ELF pcrel relocations for movw/movt:
Jason W Kim [Wed, 12 Jan 2011 00:19:25 +0000 (00:19 +0000)]
1. Support ELF pcrel relocations for movw/movt:
  R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC.
2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum.
3. Add support for 3 new elf section types (no-ops)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123294 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWorkaround for bug 8721.
Jason W Kim [Tue, 11 Jan 2011 23:53:41 +0000 (23:53 +0000)]
Workaround for bug 8721.
.s Test added.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123292 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe world is not ready for LiveDebugVariables yet.
Jakob Stoklund Olesen [Tue, 11 Jan 2011 23:20:33 +0000 (23:20 +0000)]
The world is not ready for LiveDebugVariables yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123290 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove the PR8954 workaround.
Jakob Stoklund Olesen [Tue, 11 Jan 2011 22:56:41 +0000 (22:56 +0000)]
Remove the PR8954 workaround.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123288 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a non-deterministic loop in llvm::MergeBlockIntoPredecessor.
Jakob Stoklund Olesen [Tue, 11 Jan 2011 22:54:38 +0000 (22:54 +0000)]
Fix a non-deterministic loop in llvm::MergeBlockIntoPredecessor.

DT->changeImmediateDominator() trivially ignores identity updates, so there is
really no need for the uniqueing provided by SmallPtrSet.

I expect this to fix PR8954.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123286 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEnable LiveDebugVariables by default.
Jakob Stoklund Olesen [Tue, 11 Jan 2011 22:45:28 +0000 (22:45 +0000)]
Enable LiveDebugVariables by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123282 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC
Venkatraman Govindaraju [Tue, 11 Jan 2011 22:38:28 +0000 (22:38 +0000)]
SPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123281 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDial back the speculative fix for PR8954 a bit, so that we only recompute dominators
Cameron Zwarich [Tue, 11 Jan 2011 22:14:42 +0000 (22:14 +0000)]
Dial back the speculative fix for PR8954 a bit, so that we only recompute dominators
once at the beginning of GVN instead of once per iteration.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123278 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't insert DBG_VALUE instructions after the first terminator.
Jakob Stoklund Olesen [Tue, 11 Jan 2011 22:11:16 +0000 (22:11 +0000)]
Don't insert DBG_VALUE instructions after the first terminator.

For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is
happening, and it also makes sense to have all control flow run through the
DBG_VALUE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123277 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClean up ARM subtarget code by using Triple ADT.
Evan Cheng [Tue, 11 Jan 2011 21:46:47 +0000 (21:46 +0000)]
Clean up ARM subtarget code by using Triple ADT.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123276 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAppropriately truncate debug info range in dwarf output.
Devang Patel [Tue, 11 Jan 2011 21:42:10 +0000 (21:42 +0000)]
Appropriately truncate debug info range in dwarf output.
This is not yet completely enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123274 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPut the Dominator improvements back in. They were not the cause of bootstrap miscompa...
Jakob Stoklund Olesen [Tue, 11 Jan 2011 21:23:09 +0000 (21:23 +0000)]
Put the Dominator improvements back in. They were not the cause of bootstrap miscomparisons.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123273 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAttempt to fix the bootstrap buildbot. Rafael says this works for him on x86-64 Linux.
Cameron Zwarich [Tue, 11 Jan 2011 20:23:34 +0000 (20:23 +0000)]
Attempt to fix the bootstrap buildbot. Rafael says this works for him on x86-64 Linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123270 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSpeculatively revert the recent improvements to Dominators.h in an attempt to track...
Jakob Stoklund Olesen [Tue, 11 Jan 2011 19:26:30 +0000 (19:26 +0000)]
Speculatively revert the recent improvements to Dominators.h in an attempt to track down the gcc bootstrap miscompare.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123254 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMcARM: Fill in GetMnemonicAcceptInfo().
Daniel Dunbar [Tue, 11 Jan 2011 19:06:29 +0000 (19:06 +0000)]
McARM: Fill in GetMnemonicAcceptInfo().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123253 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMcARM: Write a silly Python script to compute some hard coded info from the
Daniel Dunbar [Tue, 11 Jan 2011 19:06:26 +0000 (19:06 +0000)]
McARM: Write a silly Python script to compute some hard coded info from the
generated ARM match table, which is substantially more efficient than dealing
with tblgen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123252 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove dead variable, const-ref-ize an APInt.
Owen Anderson [Tue, 11 Jan 2011 18:26:37 +0000 (18:26 +0000)]
Remove dead variable, const-ref-ize an APInt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123248 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agothis pass claims to preserve scev, make sure to tell it about deletions.
Chris Lattner [Tue, 11 Jan 2011 18:14:50 +0000 (18:14 +0000)]
this pass claims to preserve scev, make sure to tell it about deletions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123247 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a comment: We now have intrinsics for vcvtr.
Bob Wilson [Tue, 11 Jan 2011 17:56:41 +0000 (17:56 +0000)]
Fix a comment: We now have intrinsics for vcvtr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123246 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agosome comment improvements.
Chris Lattner [Tue, 11 Jan 2011 17:11:59 +0000 (17:11 +0000)]
some comment improvements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123243 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR8946, a missing reg/reg form of movdqu.
Chris Lattner [Tue, 11 Jan 2011 17:04:55 +0000 (17:04 +0000)]
Fix PR8946, a missing reg/reg form of movdqu.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123242 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMcARM: Sketch some logic for determining when to add carry set and predication code...
Daniel Dunbar [Tue, 11 Jan 2011 15:59:53 +0000 (15:59 +0000)]
McARM: Sketch some logic for determining when to add carry set and predication code operands based on the "canonical mnemonic".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123239 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMcARM: Add more hard coded logic to SplitMnemonicAndCC to also split out the
Daniel Dunbar [Tue, 11 Jan 2011 15:59:50 +0000 (15:59 +0000)]
McARM: Add more hard coded logic to SplitMnemonicAndCC to also split out the
carry setting flag from the mnemonic.

Note that this currently involves me disabling a number of working cases in
arm_instructions.s, this is a hopefully short term evil which will be rapidly
fixed (and greatly surpassed), assuming my current approach flies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123238 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixedNumOperandTraits and VariadicOperandTraits assumed that, given a
Jay Foad [Tue, 11 Jan 2011 15:07:38 +0000 (15:07 +0000)]
FixedNumOperandTraits and VariadicOperandTraits assumed that, given a
"this" pointer for any subclass of User, you could static_cast it to
User* and then reinterpret_cast that to Use* to get the end of the
operand list. This isn't a safe assumption in general, because the
static_cast might adjust the "this" pointer. Fixed by having these
OperandTraits classes take an extra template parameter, which is the
subclass of User. This is groundwork for PR889.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123235 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFactor the actual simplification out of SimplifyIndirectBrOnSelect and into a new...
Frits van Bommel [Tue, 11 Jan 2011 12:52:11 +0000 (12:52 +0000)]
Factor the actual simplification out of SimplifyIndirectBrOnSelect and into a new helper function so it can be reused in e.g. an upcoming SimplifySwitchOnSelect.
No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123234 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd to the CMake build some options and platform tests supported by
Oscar Fuentes [Tue, 11 Jan 2011 12:31:54 +0000 (12:31 +0000)]
Add to the CMake build some options and platform tests supported by
the traditional build.

Patch by arrowdodger!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123233 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMade llvm_replace_compiler_option more robust. Use it on
Oscar Fuentes [Tue, 11 Jan 2011 12:31:34 +0000 (12:31 +0000)]
Made llvm_replace_compiler_option more robust. Use it on
llvm_process_sources.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123232 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a thinko in 123226 that caused test failures on "other" platforms.
Kalle Raiskila [Tue, 11 Jan 2011 11:27:56 +0000 (11:27 +0000)]
Fix a thinko in 123226 that caused test failures on "other" platforms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123229 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert the testcase from the previous reverted commit.
Eric Christopher [Tue, 11 Jan 2011 09:20:44 +0000 (09:20 +0000)]
Revert the testcase from the previous reverted commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123227 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a "nop filler" pass to SPU.
Kalle Raiskila [Tue, 11 Jan 2011 09:07:54 +0000 (09:07 +0000)]
Add a "nop filler" pass to SPU.

Filling no-ops is done just before emitting of assembly,
when the instruction stream is final. No-ops are inserted
to align the instructions so the dual-issue of the pipeline
is utilized. This speeds up generated code with a minimum of
1% on a select set of algorithms.

This pass may be redundant if the instruction scheduler and
all subsequent passes that modify the instruction stream
(prolog+epilog inserter, register scavenger, are there others?)
are made aware of the instruction alignments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123226 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTemporarily revert 123133, it's causing some regressions and I'm trying
Eric Christopher [Tue, 11 Jan 2011 09:02:09 +0000 (09:02 +0000)]
Temporarily revert 123133, it's causing some regressions and I'm trying
to get a testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123225 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoupdate memdep when an instruction is deleted. This code isn't
Chris Lattner [Tue, 11 Jan 2011 08:19:16 +0000 (08:19 +0000)]
update memdep when an instruction is deleted.  This code isn't
actually reached in the testcase in PR8954, but it's safe and good
practice.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123224 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agowhen MergeBlockIntoPredecessor merges two blocks, update MemDep if it
Chris Lattner [Tue, 11 Jan 2011 08:16:49 +0000 (08:16 +0000)]
when MergeBlockIntoPredecessor merges two blocks, update MemDep if it
is floating around in the ether.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123223 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix FoldSingleEntryPHINodes to update memdep and AA when it deletes
Chris Lattner [Tue, 11 Jan 2011 08:13:40 +0000 (08:13 +0000)]
Fix FoldSingleEntryPHINodes to update memdep and AA when it deletes
phi nodes.  It is called from MergeBlockIntoPredecessor which is
called from GVN, which claims to preserve these.

I'm skeptical that this is the actual problem behind PR8954, but
this is a stab in the right direction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123222 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorandom cleanups
Chris Lattner [Tue, 11 Jan 2011 08:00:40 +0000 (08:00 +0000)]
random cleanups

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123221 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomerge tests into one crash.ll test.
Chris Lattner [Tue, 11 Jan 2011 07:50:07 +0000 (07:50 +0000)]
merge tests into one crash.ll test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123220 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoremove a bogus assertion: the latch block of a loop is not
Chris Lattner [Tue, 11 Jan 2011 07:47:59 +0000 (07:47 +0000)]
remove a bogus assertion: the latch block of a loop is not
neccesarily an uncond branch to the header.  This fixes
PR8955 (the assertion tripping).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123219 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agothe GEP faq says that only inbounds geps are guaranteed to not overflow.
Chris Lattner [Tue, 11 Jan 2011 06:44:41 +0000 (06:44 +0000)]
the GEP faq says that only inbounds geps are guaranteed to not overflow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123218 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r123207: "Turn on memdep's verifyRemoved() in an attempt to smoke out the...
Jakob Stoklund Olesen [Tue, 11 Jan 2011 04:05:39 +0000 (04:05 +0000)]
Revert r123207: "Turn on memdep's verifyRemoved() in an attempt to smoke out the cause of our gcc bootstrap miscompare."

It didn't.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123215 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_dire...
Michael J. Spencer [Tue, 11 Jan 2011 01:21:55 +0000 (01:21 +0000)]
Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123209 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTurn on memdep's verifyRemoved() in an attempt to smoke out the cause of our gcc...
Jakob Stoklund Olesen [Tue, 11 Jan 2011 01:18:03 +0000 (01:18 +0000)]
Turn on memdep's verifyRemoved() in an attempt to smoke out the cause of our gcc bootstrap miscompare.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123207 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach constant folding to perform conversions from constant floating
Chandler Carruth [Tue, 11 Jan 2011 01:07:24 +0000 (01:07 +0000)]
Teach constant folding to perform conversions from constant floating
point values to their integer representation through the SSE intrinsic
calls. This is the last part of a README.txt entry for which I have real
world examples.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123206 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFileCheck-ize a test, and move a no-longer calling test case to another
Chandler Carruth [Tue, 11 Jan 2011 01:07:20 +0000 (01:07 +0000)]
FileCheck-ize a test, and move a no-longer calling test case to another
file and make it actually test something...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123205 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a random missed optimization by making InstCombine more aggressive when determini...
Owen Anderson [Tue, 11 Jan 2011 00:36:45 +0000 (00:36 +0000)]
Fix a random missed optimization by making InstCombine more aggressive when determining which bits are demanded by
a comparison against a constant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123203 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove ExpandAtomic into the integer expansion routines - it's only used there.
Eric Christopher [Tue, 11 Jan 2011 00:36:08 +0000 (00:36 +0000)]
Move ExpandAtomic into the integer expansion routines - it's only used there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123202 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEven if we don't have 7 bytes of stack space we may need to save and
Eric Christopher [Tue, 11 Jan 2011 00:16:04 +0000 (00:16 +0000)]
Even if we don't have 7 bytes of stack space we may need to save and
restore the stack pointer from the frame pointer on thumbv6.

Fixes rdar://8819685

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123196 91177308-0d34-0410-b5e6-96231b3b80d8