oota-llvm.git
13 years agoFix a crash when building 177.mesa for armv6.
Jakob Stoklund Olesen [Mon, 18 Jul 2011 18:47:13 +0000 (18:47 +0000)]
Fix a crash when building 177.mesa for armv6.

When splitting a live range immediately before an LDR_POST instruction
that redefines the address register, make sure to use the correct value
number in leaveIntvBefore.

We need the value number entering the instruction.

<rdar://problem/9793765>

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

13 years agoindvars: Added verification that LFTR and other indvars goodness does
Andrew Trick [Mon, 18 Jul 2011 18:44:20 +0000 (18:44 +0000)]
indvars: Added verification that LFTR and other indvars goodness does
not interfere with BackedgeTakenCount computation.

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

13 years agoindvars: Added isHighCostExpansion. Avoid generating extra ops in the
Andrew Trick [Mon, 18 Jul 2011 18:21:35 +0000 (18:21 +0000)]
indvars: Added isHighCostExpansion. Avoid generating extra ops in the
preheader for the sole purpose of LFTR, since LFTR itself is usually not
a clear optimization.

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

13 years agoBe more smart with VCVTSS2SD. Also place the patterns close to the
Bruno Cardoso Lopes [Mon, 18 Jul 2011 18:11:25 +0000 (18:11 +0000)]
Be more smart with VCVTSS2SD. Also place the patterns close to the
definitions.

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

13 years agoAdd AVX 128-bit sqrt versions
Bruno Cardoso Lopes [Mon, 18 Jul 2011 17:51:40 +0000 (17:51 +0000)]
Add AVX 128-bit sqrt versions

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

13 years agoChange destination register operands of SC instructions so that unique
Akira Hatanaka [Mon, 18 Jul 2011 17:44:27 +0000 (17:44 +0000)]
Change destination register operands of SC instructions so that unique
virtual registers are used.

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

13 years agoIntern all RecTy subclass instances to avoid duplicates.
Jakob Stoklund Olesen [Mon, 18 Jul 2011 17:02:57 +0000 (17:02 +0000)]
Intern all RecTy subclass instances to avoid duplicates.

Make all of the RecTy constructors private, and use get() factory
methods instead. Return singleton instances when it makes sense.

ListTy instance pointers are stored in the element RecTy instance.

BitsRecTy instance pointers, one per length, are stored in a static vector.

Also unique DefInit instances. A Record has a unique DefInit which
has a unique RecordRecTy instance.

This saves some 200k-300k RecTy allocations when parsing ARM.td. It
reduces TableGen's heap usage by almost 50%.

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

13 years agovarious cleanups noticed by Frits
Chris Lattner [Mon, 18 Jul 2011 16:35:57 +0000 (16:35 +0000)]
various cleanups noticed by Frits

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

13 years agoremove pasto
Chris Lattner [Mon, 18 Jul 2011 16:04:11 +0000 (16:04 +0000)]
remove pasto

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

13 years agoHopefully fix some GCC-based buildbots. GCC apparently decays the array to a pointer...
Frits van Bommel [Mon, 18 Jul 2011 12:31:03 +0000 (12:31 +0000)]
Hopefully fix some GCC-based buildbots. GCC apparently decays the array to a pointer here before overload resolution, so construct with an explicit length instead.

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

13 years agoMigrate LLVM and Clang to use the new makeArrayRef(...) functions where previously...
Frits van Bommel [Mon, 18 Jul 2011 12:00:32 +0000 (12:00 +0000)]
Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used.
Mostly mechanical with some manual reformatting.

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

13 years agoIntroduce the 'makeArrayRef(...)' family of functions, which fills a similar role...
Frits van Bommel [Mon, 18 Jul 2011 11:58:53 +0000 (11:58 +0000)]
Introduce the 'makeArrayRef(...)' family of functions, which fills a similar role for ArrayRef<> as std::make_pair() fills for std::pair<>: they return the right instantiation of ArrayRef<T> based on the types of the parameters.

They mostly mirror the ArrayRef constructors, with two exceptions:
 * There's no function mirroring the default constructor because it wouldn't have any parameters to deduce the right ArrayRef<T> from.
 * There's an explicit SmallVector<T> overload in addition to the SmallVectorImpl<T> overload. Without it, the single-element overload would try to create an ArrayRef<Smallvector<T> > because it's a better match according to the overloading rules. (And both overloads are used in the current tree, so neither is redundant)

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

13 years agoDelete empty unused file.
Nick Lewycky [Mon, 18 Jul 2011 05:54:06 +0000 (05:54 +0000)]
Delete empty unused file.

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

13 years agoFix PR10387.
Jakob Stoklund Olesen [Mon, 18 Jul 2011 05:31:59 +0000 (05:31 +0000)]
Fix PR10387.

When trying to rematerialize a value before an instruction that has an
early-clobber redefine of the virtual register, make sure to look up the
correct value number.

Early-clobber defs are moved one slot back, so getBaseIndex is needed to
find the used value number.

Bugpoint was unable to reduce the test case for this, see PR10388.

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

13 years agodocument this api change.
Chris Lattner [Mon, 18 Jul 2011 04:56:02 +0000 (04:56 +0000)]
document this api change.

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

13 years agoland David Blaikie's patch to de-constify Type, with a few tweaks.
Chris Lattner [Mon, 18 Jul 2011 04:54:35 +0000 (04:54 +0000)]
land David Blaikie's patch to de-constify Type, with a few tweaks.

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

13 years agoupdate for recent api changes. I have a hard time believing that this is actually...
Chris Lattner [Mon, 18 Jul 2011 04:52:58 +0000 (04:52 +0000)]
update for recent api changes.  I have a hard time believing that this is actually a useful example.

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

13 years agoupdate this to build with a recent IRBuilder change and de-constify types.
Chris Lattner [Mon, 18 Jul 2011 04:52:09 +0000 (04:52 +0000)]
update this to build with a recent IRBuilder change and de-constify types.

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

13 years agoLLC doesn't need to create MCInstrInfo's.
Evan Cheng [Mon, 18 Jul 2011 04:16:27 +0000 (04:16 +0000)]
LLC doesn't need to create MCInstrInfo's.

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

13 years agoadd iteration support to TinyPtrVector for clang's use.
Chris Lattner [Mon, 18 Jul 2011 01:53:11 +0000 (01:53 +0000)]
add iteration support to TinyPtrVector for clang's use.

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

13 years agofix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some
Chris Lattner [Mon, 18 Jul 2011 01:43:58 +0000 (01:43 +0000)]
fix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some
mallocs.

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

13 years agointroduce a new TinyPtrVector class.
Chris Lattner [Mon, 18 Jul 2011 01:40:02 +0000 (01:40 +0000)]
introduce a new TinyPtrVector class.

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

13 years agoSimplify & microoptimize code. No intended functionality change.
Benjamin Kramer [Mon, 18 Jul 2011 00:00:20 +0000 (00:00 +0000)]
Simplify & microoptimize code. No intended functionality change.

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

13 years agoMinor code cleanups
Nadav Rotem [Sun, 17 Jul 2011 19:05:00 +0000 (19:05 +0000)]
Minor code cleanups

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

13 years agoFix CMake build on Solaris
Oscar Fuentes [Sun, 17 Jul 2011 17:35:15 +0000 (17:35 +0000)]
Fix CMake build on Solaris

When building LLVM/Clang on Solaris. The generated makefiles would
have an extraneous semi-colon character in them prior to this change
due to the way the 'CMAKE_CXX_FLAGS' variable was defined. Simply
adjusting the definition by moving the current CMAKE_CXX_FLAGS value
within the quotes solves the problem.

Patch by Art Haas!

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

13 years agotidy up
Chris Lattner [Sun, 17 Jul 2011 06:01:30 +0000 (06:01 +0000)]
tidy up

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

13 years agoSilence compiler warnings.
Benjamin Kramer [Sat, 16 Jul 2011 22:26:27 +0000 (22:26 +0000)]
Silence compiler warnings.

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

13 years agoRemove unused LoopRanges from RegAllocGreedy.
Jakub Staszak [Sat, 16 Jul 2011 20:43:00 +0000 (20:43 +0000)]
Remove unused LoopRanges from RegAllocGreedy.

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

13 years agoRemove "LoopInfo.h" include from BranchProbabilityInfo.h.
Jakub Staszak [Sat, 16 Jul 2011 20:31:15 +0000 (20:31 +0000)]
Remove "LoopInfo.h" include from BranchProbabilityInfo.h.

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

13 years agoAdd MachineBlockFrequency analysis.
Jakub Staszak [Sat, 16 Jul 2011 20:23:20 +0000 (20:23 +0000)]
Add MachineBlockFrequency analysis.

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

13 years agoRevert r135319 in an attempt to get to unbreak testers.
Owen Anderson [Sat, 16 Jul 2011 09:17:43 +0000 (09:17 +0000)]
Revert r135319 in an attempt to get to unbreak testers.

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

13 years agoMore minor adjustments.
Eric Christopher [Sat, 16 Jul 2011 07:28:35 +0000 (07:28 +0000)]
More minor adjustments.

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

13 years agoSilence unused variable warning
Matt Beaumont-Gay [Sat, 16 Jul 2011 04:18:47 +0000 (04:18 +0000)]
Silence unused variable warning

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

13 years agoMake the disassembler able to disassemble a bunch of instructions with names in the...
Eli Friedman [Sat, 16 Jul 2011 02:41:28 +0000 (02:41 +0000)]
Make the disassembler able to disassemble a bunch of instructions with names in the TableGen files containing "64" on x86-32.  This includes a bunch of x87 instructions, like fld, and a bunch of SSSE3 instructions on MMX registers like pshufb.  Part of PR8873.

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

13 years agoindvars: fix a pass-sensitivity issue that would hit the SCEVExpander
Andrew Trick [Sat, 16 Jul 2011 01:18:53 +0000 (01:18 +0000)]
indvars: fix a pass-sensitivity issue that would hit the SCEVExpander
assertion I added in r135333. Check for the existence of a preheader
before expanding a recurrence.

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

13 years agoindvars: remove ExprToIVMap because it won't be needed by LFTR.
Andrew Trick [Sat, 16 Jul 2011 01:06:48 +0000 (01:06 +0000)]
indvars: remove ExprToIVMap because it won't be needed by LFTR.

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

13 years agoFix SCEVEXpander to handle arbitrary phi expansion. Includes two
Andrew Trick [Sat, 16 Jul 2011 00:59:39 +0000 (00:59 +0000)]
Fix SCEVEXpander to handle arbitrary phi expansion. Includes two
related bug fixes and corresponding assertions for uninitialized data
and missing NULL check. Test cases will be included with the new LFTR.

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

13 years agoAdd AVX 128-bit patterns for sint_to_fp
Bruno Cardoso Lopes [Sat, 16 Jul 2011 00:50:20 +0000 (00:50 +0000)]
Add AVX 128-bit patterns for sint_to_fp

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

13 years agoFinish propagating %asmtmp->%1 change.
Eric Christopher [Sat, 16 Jul 2011 00:26:07 +0000 (00:26 +0000)]
Finish propagating %asmtmp->%1 change.

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

13 years agoHe said *before* the last split point.
Jakob Stoklund Olesen [Sat, 16 Jul 2011 00:13:30 +0000 (00:13 +0000)]
He said *before* the last split point.

This should unbreak the build-self-4-mingw32 tester. I have a very
complicated test case that I will try to clean up.

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

13 years agofix rdar://9776316 - type remapping needed for inline asm blobs,
Chris Lattner [Fri, 15 Jul 2011 23:18:40 +0000 (23:18 +0000)]
fix rdar://9776316 - type remapping needed for inline asm blobs,
fixing some objc llvm-test crashes with LTO.

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

13 years agodeconstify getType()'s.
Chris Lattner [Fri, 15 Jul 2011 23:15:45 +0000 (23:15 +0000)]
deconstify getType()'s.

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

13 years agoLegalizeDAG doesn't need its own copy of this enum.
Dan Gohman [Fri, 15 Jul 2011 22:51:43 +0000 (22:51 +0000)]
LegalizeDAG doesn't need its own copy of this enum.

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

13 years agoGet rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr...
Owen Anderson [Fri, 15 Jul 2011 22:49:31 +0000 (22:49 +0000)]
Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode.  Update the ARM disassembler for this change.

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

13 years agoDelete LegalizeDAG's own version of isTypeLegal and getTypeAction
Dan Gohman [Fri, 15 Jul 2011 22:39:09 +0000 (22:39 +0000)]
Delete LegalizeDAG's own version of isTypeLegal and getTypeAction
and just use the ones from TargetLowering directly.

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

13 years agoFix a couple of things:
Bruno Cardoso Lopes [Fri, 15 Jul 2011 22:24:33 +0000 (22:24 +0000)]
Fix a couple of things:

1) Make non-legal 256-bit loads to be promoted to v4i64. This lets us
canonize the loads and handle things the same way we use to handle
for 128-bit registers. Despite of what one of the removed comments
explained, the load promotion would not mess with VPERM, it's only a
matter of doing the appropriate bitcasts when this instructions comes
to be introduced. Also make LOAD v8i32 legal.

2) Doing 1) exposed two bugs:
- v4i64 was being promoted to itself for several opcodes (introduced
in r124447 by David Greene) causing endless recursion and the stack to
explode.
- there was no support for allOnes BUILD_VECTORs and ANDNP would fail to
match because it was generating early target constant pools during
lowering.

3) The testcases are already checked-in, doing 1) exposed the
bugs in the current testcases.

4) Tidy up code to be more clear and explicit about AVX.

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

13 years agoAdd a few patterns for 256-bit bitcasts. No testcases now, they are
Bruno Cardoso Lopes [Fri, 15 Jul 2011 22:24:17 +0000 (22:24 +0000)]
Add a few patterns for 256-bit bitcasts. No testcases now, they are
comming together with other tests.

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

13 years agoDelete an unused variable and a redundant assert.
Dan Gohman [Fri, 15 Jul 2011 22:19:02 +0000 (22:19 +0000)]
Delete an unused variable and a redundant assert.

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

13 years agoExtract parts of RAGreedy::splitAroundRegion as SplitKit methods.
Jakob Stoklund Olesen [Fri, 15 Jul 2011 21:47:57 +0000 (21:47 +0000)]
Extract parts of RAGreedy::splitAroundRegion as SplitKit methods.

This gets rid of some of the gory splitting details in RAGreedy and
makes them available to future SplitKit clients.

Slightly generalize the functionality to support multi-way splitting.
Specifically, SplitEditor::splitLiveThroughBlock() supports switching
between different register intervals in a block.

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

13 years agoModernize comments.
Dan Gohman [Fri, 15 Jul 2011 21:42:20 +0000 (21:42 +0000)]
Modernize comments.

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

13 years agoPR10370: Make sure we know how to relax push correctly on x86-64.
Eli Friedman [Fri, 15 Jul 2011 21:28:39 +0000 (21:28 +0000)]
PR10370: Make sure we know how to relax push correctly on x86-64.

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

13 years agoUse DebugLoc directly to map inlined functions' instructions to respective lexical...
Devang Patel [Fri, 15 Jul 2011 21:25:44 +0000 (21:25 +0000)]
Use DebugLoc directly to map inlined functions' instructions to respective lexical scope.

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

13 years agoA real testcase for r135286.
Chad Rosier [Fri, 15 Jul 2011 20:58:38 +0000 (20:58 +0000)]
A real testcase for r135286.

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

13 years agoUpdate these tests, no longer outputting names for the variables.
Eric Christopher [Fri, 15 Jul 2011 20:58:16 +0000 (20:58 +0000)]
Update these tests, no longer outputting names for the variables.

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

13 years agoFix pointer heuristic. Check whether predicator is ICMP_NE instead of if it is
Jakub Staszak [Fri, 15 Jul 2011 20:51:06 +0000 (20:51 +0000)]
Fix pointer heuristic. Check whether predicator is ICMP_NE instead of if it is
not isEquality().

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

13 years agoA couple of minor fixes to the OCaml tutorial. PR10025 and PR10316. Patches by...
Eli Friedman [Fri, 15 Jul 2011 20:03:30 +0000 (20:03 +0000)]
A couple of minor fixes to the OCaml tutorial.  PR10025 and PR10316.  Patches by Damien Schoof!

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

13 years agoAdd testcase for r135286.
Chad Rosier [Fri, 15 Jul 2011 19:06:58 +0000 (19:06 +0000)]
Add testcase for r135286.

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

13 years agoRemove VMOVDneon and VMOVQ, which are just aliases for VORR. This continues to simpl...
Owen Anderson [Fri, 15 Jul 2011 18:46:47 +0000 (18:46 +0000)]
Remove VMOVDneon and VMOVQ, which are just aliases for VORR.  This continues to simplify the path towards an auto-generated disassembler.

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

13 years agoTeach llvm-objdump to disassemble sections symbol by symbol.
Benjamin Kramer [Fri, 15 Jul 2011 18:39:24 +0000 (18:39 +0000)]
Teach llvm-objdump to disassemble sections symbol by symbol.

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

13 years agoObjectFile: Add a method to check whether a section contains a symbol.
Benjamin Kramer [Fri, 15 Jul 2011 18:39:21 +0000 (18:39 +0000)]
ObjectFile: Add a method to check whether a section contains a symbol.

- No ELF or COFF implementation yet, I don't have a way to test that.
  Should be straightforward to add though.

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

13 years agoHave tblgen produce code that tolerates operands that return an invalid match class.
Kevin Enderby [Fri, 15 Jul 2011 18:30:43 +0000 (18:30 +0000)]
Have tblgen produce code that tolerates operands that return an invalid match class.

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

13 years agoDisable loop idiom recognition of memset/memcpy if the function being compiled
Chad Rosier [Fri, 15 Jul 2011 18:25:04 +0000 (18:25 +0000)]
Disable loop idiom recognition of memset/memcpy if the function being compiled
is named after a common idiom (i.e., memset/memcpy).  Otherwise, we can run into
infinite recursion.  Ideally, the user should use the correct -fno-builtin flag,
but in case they don't we should play nicely.
rdar://9763412

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

13 years agoRemove unnecessary duplicate instruction definitions that simply overloaded the type...
Owen Anderson [Fri, 15 Jul 2011 17:48:05 +0000 (17:48 +0000)]
Remove unnecessary duplicate instruction definitions that simply overloaded the type of VEXT.  This can be achieved with a Pat definition, and is much more disassembler friendly.

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

13 years agoMachOObjectFile: Get symbol functions ready for 64 bit.
Benjamin Kramer [Fri, 15 Jul 2011 17:32:45 +0000 (17:32 +0000)]
MachOObjectFile: Get symbol functions ready for 64 bit.

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

13 years agoNo need to explicitly invoke the ArrayRef constructor here.
Frits van Bommel [Fri, 15 Jul 2011 17:13:23 +0000 (17:13 +0000)]
No need to explicitly invoke the ArrayRef constructor here.

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

13 years agoEliminate redundant map.
Devang Patel [Fri, 15 Jul 2011 16:38:42 +0000 (16:38 +0000)]
Eliminate redundant map.

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

13 years agoEliminate "const" from extern const to fix breakeage since r135184 on msvc.
NAKAMURA Takumi [Fri, 15 Jul 2011 12:50:21 +0000 (12:50 +0000)]
Eliminate "const" from extern const to fix breakeage since r135184 on msvc.

MSVC decorates (and distinguishes) "const" in mangler. It brought linkage error between "extern const" declarations and definitions.

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

13 years agoFor my ego.
Francois Pichet [Fri, 15 Jul 2011 11:26:11 +0000 (11:26 +0000)]
For my ego.

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

13 years agoIn Twine::str(), if the Twine stores only a std::string, just return a direct copy...
Frits van Bommel [Fri, 15 Jul 2011 11:05:37 +0000 (11:05 +0000)]
In Twine::str(), if the Twine stores only a std::string, just return a direct copy of that instead of first copying to a SmallString and converting that to a std::string. Also fix some indentation.

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

13 years agoConvert CallInst and InvokeInst APIs to use ArrayRef. For the LLVM examples.
Francois Pichet [Fri, 15 Jul 2011 10:59:52 +0000 (10:59 +0000)]
Convert CallInst and InvokeInst APIs to use ArrayRef. For the LLVM examples.

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

13 years agoConvert CallInst and InvokeInst APIs to use ArrayRef.
Jay Foad [Fri, 15 Jul 2011 08:37:34 +0000 (08:37 +0000)]
Convert CallInst and InvokeInst APIs to use ArrayRef.

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

13 years agoExplicitly cast the second argument to unsigned in order to select the
Chandler Carruth [Fri, 15 Jul 2011 07:31:10 +0000 (07:31 +0000)]
Explicitly cast the second argument to unsigned in order to select the
desired overload.

This is a bit of a hackish workaround to fix the compile after r135259.
Let me know if there is a better approach.

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

13 years agoAdd an APFloat::convertToInt(APSInt) function that automatically manages the
Jeffrey Yasskin [Fri, 15 Jul 2011 07:04:56 +0000 (07:04 +0000)]
Add an APFloat::convertToInt(APSInt) function that automatically manages the
memory for the result.

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

13 years agoReverting r135232. It's causing infinite looping in DbgScope::openInsnRange.
Evan Cheng [Fri, 15 Jul 2011 06:26:35 +0000 (06:26 +0000)]
Reverting r135232. It's causing infinite looping in DbgScope::openInsnRange.

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

13 years agoremove the old and dangerous uncheckedReplaceAllUsesWith method,
Chris Lattner [Fri, 15 Jul 2011 06:18:52 +0000 (06:18 +0000)]
remove the old and dangerous uncheckedReplaceAllUsesWith method,
which was just replaceAllUsesWith without some assertions.  It was
needed back when type refinement was alive.

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

13 years agodevirtualize Constant::isNullValue:
Chris Lattner [Fri, 15 Jul 2011 06:14:08 +0000 (06:14 +0000)]
devirtualize Constant::isNullValue:

 4 files changed, 15 insertions(+), 60 deletions(-)

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

13 years agostart using the new helper methods a bit.
Chris Lattner [Fri, 15 Jul 2011 06:08:15 +0000 (06:08 +0000)]
start using the new helper methods a bit.

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

13 years agoadd CFP::isNegative() and ConstnatInt::isNegative() methods.
Chris Lattner [Fri, 15 Jul 2011 05:58:04 +0000 (05:58 +0000)]
add CFP::isNegative() and ConstnatInt::isNegative() methods.

Devirtualize the isNegativeZeroValue method.

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

13 years agobump pointer allocate LLVM IR types, since they are never deallocated.
Chris Lattner [Fri, 15 Jul 2011 05:49:15 +0000 (05:49 +0000)]
bump pointer allocate LLVM IR types, since they are never deallocated.

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

13 years agoremove the InvalidateStructLayoutInfo API, which is dead and unnecessary now
Chris Lattner [Fri, 15 Jul 2011 05:21:59 +0000 (05:21 +0000)]
remove the InvalidateStructLayoutInfo API, which is dead and unnecessary now
that type refinement is toast.

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

13 years agoRemove an unnecessary header from this file. I don't think this header
Chandler Carruth [Fri, 15 Jul 2011 04:16:38 +0000 (04:16 +0000)]
Remove an unnecessary header from this file. I don't think this header
was really intended, and it may have been required prior to some of the
recent refactors. Including it however causes LLVMX86Desc to need
symbols from LLVMX86CodeGen, forming a dependency cycle. This was masked
in almost all builds: Clang, and GCC w/ optimizations didn't actually
emit the symbols!

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

13 years agoThe *MCAsmInfo.cpp files use ADT/Triple code, so add the Support dep.
Chandler Carruth [Fri, 15 Jul 2011 02:34:03 +0000 (02:34 +0000)]
The *MCAsmInfo.cpp files use ADT/Triple code, so add the Support dep.

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

13 years agoMove some parts of TargetAsmInfo down to MCAsmInfo. This is not the greatest
Evan Cheng [Fri, 15 Jul 2011 02:09:41 +0000 (02:09 +0000)]
Move some parts of TargetAsmInfo down to MCAsmInfo. This is not the greatest
solution but it is a small step towards removing the horror that is
TargetAsmInfo.

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

13 years agoRemove setting the bit for personality function. It should be set by the linker.
Bill Wendling [Fri, 15 Jul 2011 01:42:32 +0000 (01:42 +0000)]
Remove setting the bit for personality function. It should be set by the linker.

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

13 years agoMajor update to CMake build to reflect changes in r135219 in the
Chandler Carruth [Fri, 15 Jul 2011 00:40:52 +0000 (00:40 +0000)]
Major update to CMake build to reflect changes in r135219 in the
backend. Moved some MCAsmInfo files down into the MCTargetDesc
sublibraries, removed some (i suspect long) dead files from other parts
of the CMake build, etc. Also copied the include directory hack from the
Makefile.

Finally, updated the lib deps. I spot checked this, and think its
correct, but review appreciated there.

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

13 years agoAdd new configure option, --with-bug-report-url, which allows users/vendors to
Chad Rosier [Fri, 15 Jul 2011 00:37:26 +0000 (00:37 +0000)]
Add new configure option, --with-bug-report-url, which allows users/vendors to
specify where bug reports should be submitted.
Part of rdar://9575623

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

13 years agoDo not get confused by multiple empty lexical scopes inlined at one location.
Devang Patel [Fri, 15 Jul 2011 00:30:39 +0000 (00:30 +0000)]
Do not get confused by multiple empty lexical scopes inlined at one location.

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

13 years agoOutput MachO section names in the form SEGMENT,section.
Benjamin Kramer [Fri, 15 Jul 2011 00:29:02 +0000 (00:29 +0000)]
Output MachO section names in the form SEGMENT,section.

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

13 years agoAdd support for 64 bit objects to MachOObjectFile.
Benjamin Kramer [Fri, 15 Jul 2011 00:14:48 +0000 (00:14 +0000)]
Add support for 64 bit objects to MachOObjectFile.

- I don't see a better way than duplicating all the code.

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

13 years agoMachOObjectFile: Change isSectionText to return true for sections named text, not...
Benjamin Kramer [Fri, 15 Jul 2011 00:14:46 +0000 (00:14 +0000)]
MachOObjectFile: Change isSectionText to return true for sections named text, not for load commands name __TEXT (which isn't the case in actual object files)

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

13 years agoEncode that we have a personality function.
Bill Wendling [Fri, 15 Jul 2011 00:07:31 +0000 (00:07 +0000)]
Encode that we have a personality function.

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

13 years agoRename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc...
Evan Cheng [Thu, 14 Jul 2011 23:50:31 +0000 (23:50 +0000)]
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes.

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

13 years agoCMake: Add a new configuration option LLVM_BUILD_CLANG that's
Douglas Gregor [Thu, 14 Jul 2011 23:49:55 +0000 (23:49 +0000)]
CMake: Add a new configuration option LLVM_BUILD_CLANG that's
available when Clang is found within the LLVM tree. If enabled (the
default), Clang will be built as part of LLVM. If disabled, Clang will
be skipped... and can be built by configuring a separate object
directory just for Clang. This helps break up the monolithic
LLVM+Clang project that many Clang developers use, improving
build/load times.

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

13 years ago* If we have an LSDA, we need to mark it in the encoding.
Bill Wendling [Thu, 14 Jul 2011 23:34:45 +0000 (23:34 +0000)]
* If we have an LSDA, we need to mark it in the encoding.
* The personality function should be encoded as an absolute pointer to the function.

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

13 years agoRefactor.
Devang Patel [Thu, 14 Jul 2011 23:17:49 +0000 (23:17 +0000)]
Refactor.

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

13 years agocmake/modules/LLVMLibDeps.cmake: Update since r135184.
NAKAMURA Takumi [Thu, 14 Jul 2011 23:12:02 +0000 (23:12 +0000)]
cmake/modules/LLVMLibDeps.cmake: Update since r135184.

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

13 years agoEliminate redundant LLVMContext argument.
Devang Patel [Thu, 14 Jul 2011 22:30:56 +0000 (22:30 +0000)]
Eliminate redundant LLVMContext argument.
Improve DbgScope->dump() output.

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

13 years agoUndo r135191 (i.e. reapply Chris's patch. Now linker maps NamedMDNodes first, so...
Devang Patel [Thu, 14 Jul 2011 22:14:06 +0000 (22:14 +0000)]
Undo r135191 (i.e. reapply Chris's patch. Now linker maps NamedMDNodes first, so there is not any need to map DebugLoc).

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

13 years agoLink NamedMDNode before linking function bodies.
Devang Patel [Thu, 14 Jul 2011 22:13:07 +0000 (22:13 +0000)]
Link NamedMDNode before linking function bodies.

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

13 years agoARM diagnostic when 's' suffix on mnemonic that can't set flags.
Jim Grosbach [Thu, 14 Jul 2011 22:04:21 +0000 (22:04 +0000)]
ARM diagnostic when 's' suffix on mnemonic that can't set flags.

For example, "mlss r0, r1, r2, r3".

The MLS instruction does not have a flag-setting variant.

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