oota-llvm.git
15 years agoFIX PR 4459.
Rafael Espindola [Mon, 29 Jun 2009 20:29:59 +0000 (20:29 +0000)]
FIX PR 4459.

Not sure I understand how the temp register gets used,
but this fixes a bug and introduces no regressions.

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

15 years agoAdd some tests of advanced TableGen list functionality.
David Greene [Mon, 29 Jun 2009 20:07:17 +0000 (20:07 +0000)]
Add some tests of advanced TableGen list functionality.

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

15 years agoImplement !cast<string>.
David Greene [Mon, 29 Jun 2009 20:05:29 +0000 (20:05 +0000)]
Implement !cast<string>.

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

15 years agoImprove TableGen error reporting.
David Greene [Mon, 29 Jun 2009 19:59:52 +0000 (19:59 +0000)]
Improve TableGen error reporting.

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

15 years agoInitialize CurSection in constructor.
Torok Edwin [Mon, 29 Jun 2009 19:59:10 +0000 (19:59 +0000)]
Initialize CurSection in constructor.
Not doing so causes some unittests to fail, because CurSection is uninitialized.

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

15 years agoFix order of arguments to EXPECT_EQ
Daniel Dunbar [Mon, 29 Jun 2009 19:57:24 +0000 (19:57 +0000)]
Fix order of arguments to EXPECT_EQ

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

15 years agoRename MCValue::getCst to getConstant and add MCValue::isConstant.
Daniel Dunbar [Mon, 29 Jun 2009 19:51:00 +0000 (19:51 +0000)]
Rename MCValue::getCst to getConstant and add MCValue::isConstant.

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

15 years agoRelax LDA memory instruction checks.
Andreas Bolka [Mon, 29 Jun 2009 18:51:11 +0000 (18:51 +0000)]
Relax LDA memory instruction checks.

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

15 years agoCall doInitialization(), releaseMemory(), and doFinalization() for on-the-fly passes...
Torok Edwin [Mon, 29 Jun 2009 18:49:09 +0000 (18:49 +0000)]
Call doInitialization(), releaseMemory(), and doFinalization() for on-the-fly passes as well.
Also don't call finalizers for LoopPass if initialization was not called.
Add a unittest that tests that these methods are called, in the proper
order, and the correct number of times.

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

15 years agoSimplify this code, and avoid using APInt(). This fixes
Dan Gohman [Mon, 29 Jun 2009 18:25:52 +0000 (18:25 +0000)]
Simplify this code, and avoid using APInt(). This fixes
(otherwise harmless) uninitialized value warnings that
Duncan found with gcc-4.4.

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

15 years agoAdd a target-specific DAG combine on X86 to fold the common pattern of
Owen Anderson [Mon, 29 Jun 2009 18:04:45 +0000 (18:04 +0000)]
Add a target-specific DAG combine on X86 to fold the common pattern of
fence-atomic-fence down to just the atomic op.  This is possible thanks to
X86's relatively strong memory model, which guarantees that locked instructions
(which are used to implement atomics) are implicit fences.

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

15 years agoFix three MSVC 2008 warnings that completely clutter the build output.
Sebastian Redl [Mon, 29 Jun 2009 17:12:06 +0000 (17:12 +0000)]
Fix three MSVC 2008 warnings that completely clutter the build output.

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

15 years agoAdd processor descriptions for Istanbul and Shanghai.
David Greene [Mon, 29 Jun 2009 16:54:06 +0000 (16:54 +0000)]
Add processor descriptions for Istanbul and Shanghai.

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

15 years agoFix a subtarget feature bug.
David Greene [Mon, 29 Jun 2009 16:51:01 +0000 (16:51 +0000)]
Fix a subtarget feature bug.

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

15 years agoAdd more vector ValueTypes for AVX and other extended vector instruction
David Greene [Mon, 29 Jun 2009 16:47:10 +0000 (16:47 +0000)]
Add more vector ValueTypes for AVX and other extended vector instruction
sets.

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

15 years agoFix CMake checks for pthread_getspecific and pthread_rwlock_init, from Xerxes Ranby
Douglas Gregor [Mon, 29 Jun 2009 16:25:22 +0000 (16:25 +0000)]
Fix CMake checks for pthread_getspecific and pthread_rwlock_init, from Xerxes Ranby

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

15 years agoRename ARMcmpNZ to ARMcmpZ and use it to represent comparisons that set only the...
David Goodwin [Mon, 29 Jun 2009 15:33:01 +0000 (15:33 +0000)]
Rename ARMcmpNZ to ARMcmpZ and use it to represent comparisons that set only the Z flag (i.e. eq and ne). Make ARMcmpZ commutative.

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

15 years agoAdd triple for OpenBSD.
Duncan Sands [Mon, 29 Jun 2009 13:36:13 +0000 (13:36 +0000)]
Add triple for OpenBSD.

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

15 years agoInclude the new file ThumbRegisterInfo.cpp to CMakeLists.txt
Duncan Sands [Mon, 29 Jun 2009 13:11:32 +0000 (13:11 +0000)]
Include the new file ThumbRegisterInfo.cpp to CMakeLists.txt
to make sure ThumbRegisterInfo.cpp are compiled and linked in.
Patch by Xerxes.

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

15 years agoImplement Thumb2 ldr.
Evan Cheng [Mon, 29 Jun 2009 07:51:04 +0000 (07:51 +0000)]
Implement Thumb2 ldr.

After much back and forth, I decided to deviate from ARM design and split LDR into 4 instructions (r + imm12, r + imm8, r + r << imm12, constantpool). The advantage of this is 1) it follows the latest ARM technical manual, and 2) makes it easier to reduce the width of the instruction later. The down side is this creates more inconsistency between the two sub-targets. We should split ARM LDR instruction in a similar fashion later. I've added a README entry for this.

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

15 years agoMake dynamic LLVMC plugins work on Windows (finally!).
Mikhail Glushenkov [Mon, 29 Jun 2009 03:09:15 +0000 (03:09 +0000)]
Make dynamic LLVMC plugins work on Windows (finally!).

Implemented by making lib/CompilerDriver a shared library that holds all the
global static data (CommandLine options, plugin registry) that we unfortunately
have to live with.

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

15 years agoMissed one.
Andreas Bolka [Mon, 29 Jun 2009 00:53:49 +0000 (00:53 +0000)]
Missed one.

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

15 years agoFix case in LDA util function names.
Andreas Bolka [Mon, 29 Jun 2009 00:50:26 +0000 (00:50 +0000)]
Fix case in LDA util function names.

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

15 years agoPrint pairwise dependence results, add testcases.
Andreas Bolka [Sun, 28 Jun 2009 00:35:22 +0000 (00:35 +0000)]
Print pairwise dependence results, add testcases.

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

15 years agoMinimal LDA interface, maximally conservative tester.
Andreas Bolka [Sun, 28 Jun 2009 00:21:21 +0000 (00:21 +0000)]
Minimal LDA interface, maximally conservative tester.

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

15 years agoLDA analysis output scaffolding.
Andreas Bolka [Sun, 28 Jun 2009 00:16:08 +0000 (00:16 +0000)]
LDA analysis output scaffolding.

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

15 years agoDon't try to split a loop when the controlling icmp instruction
Dan Gohman [Sat, 27 Jun 2009 22:58:27 +0000 (22:58 +0000)]
Don't try to split a loop when the controlling icmp instruction
doesn't have an IV-based operand. This fixes PR4471.

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

15 years agoRemove the block from the LoopInfo, rather than just the Loop.
Dan Gohman [Sat, 27 Jun 2009 22:32:36 +0000 (22:32 +0000)]
Remove the block from the LoopInfo, rather than just the Loop.
LoopInfo will handle removing it from the Loop, as well as updating
its own tables.

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

15 years agoTeach LoopSimplify how to merge multiple loop exits into a single exit,
Dan Gohman [Sat, 27 Jun 2009 21:30:38 +0000 (21:30 +0000)]
Teach LoopSimplify how to merge multiple loop exits into a single exit,
when one of them can be converted to a trivial icmp and conditional
branch.

This addresses what is essentially a phase ordering problem.
SimplifyCFG knows how to do this transformation, but it doesn't do so
if the primary block has any instructions in it other than an icmp and
a branch. In the given testcase, the block contains other instructions,
however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
have LoopInfo though, so it can't hoist them. And, it's important that
the blocks be merged before LoopRotation, as it doesn't support
multiple-exit loops.

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

15 years agoMore minor code simplifications.
Dan Gohman [Sat, 27 Jun 2009 21:23:40 +0000 (21:23 +0000)]
More minor code simplifications.

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

15 years agoEliminate a layer of indirection in LoopInfo and MachineLoopInfo.
Dan Gohman [Sat, 27 Jun 2009 21:22:48 +0000 (21:22 +0000)]
Eliminate a layer of indirection in LoopInfo and MachineLoopInfo.

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

15 years agoConvert ScalarEvolution to use BumpPtrAllocator and FoldingSet, instead
Dan Gohman [Sat, 27 Jun 2009 21:21:31 +0000 (21:21 +0000)]
Convert ScalarEvolution to use BumpPtrAllocator and FoldingSet, instead
of a team of individual allocations and a team of std::maps.

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

15 years agoRemove a redundant #include.
Dan Gohman [Sat, 27 Jun 2009 21:18:51 +0000 (21:18 +0000)]
Remove a redundant #include.

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

15 years agoChange SCEVExpander to use an IRBuilder to emit instructions.
Dan Gohman [Sat, 27 Jun 2009 21:18:18 +0000 (21:18 +0000)]
Change SCEVExpander to use an IRBuilder to emit instructions.

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

15 years agoAdd a 'const' in a comment.
Dan Gohman [Sat, 27 Jun 2009 20:53:16 +0000 (20:53 +0000)]
Add a 'const' in a comment.

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

15 years agoSimplify a bit
Anton Korobeynikov [Sat, 27 Jun 2009 12:59:03 +0000 (12:59 +0000)]
Simplify a bit

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

15 years agoARM refactoring. Step 2: split RegisterInfo
Anton Korobeynikov [Sat, 27 Jun 2009 12:16:40 +0000 (12:16 +0000)]
ARM refactoring. Step 2: split RegisterInfo

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

15 years agoAdd ThumbInstrInfo.cpp to the CMake makefiles
Douglas Gregor [Sat, 27 Jun 2009 07:44:59 +0000 (07:44 +0000)]
Add ThumbInstrInfo.cpp to the CMake makefiles

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

15 years agoremove a bunch of fixmes (old checking code) and commonize all the
Chris Lattner [Sat, 27 Jun 2009 05:46:24 +0000 (05:46 +0000)]
remove a bunch of fixmes (old checking code) and commonize all the
target-specific operand printing functionality.  Yay.

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

15 years agopull @GOT, @GOTOFF, @GOTPCREL handling into isel from the asmprinter.
Chris Lattner [Sat, 27 Jun 2009 05:39:56 +0000 (05:39 +0000)]
pull @GOT, @GOTOFF, @GOTPCREL handling into isel from the asmprinter.

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

15 years agosimplify some code and eliminate the symbolicAddressesAreRIPRel() predicate.
Chris Lattner [Sat, 27 Jun 2009 05:24:12 +0000 (05:24 +0000)]
simplify some code and eliminate the symbolicAddressesAreRIPRel() predicate.

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

15 years agoWhen a value is used multiple times within a single PHI, instructions
Dan Gohman [Sat, 27 Jun 2009 05:16:57 +0000 (05:16 +0000)]
When a value is used multiple times within a single PHI, instructions
inserted to replace that value must dominate all of of the basic
blocks associated with the uses of the value in the PHI, not just
one of them.

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

15 years agofix clang/test/CodeGenObjC/try.m, a basereg doesn't mean no global anymore.
Chris Lattner [Sat, 27 Jun 2009 04:50:14 +0000 (04:50 +0000)]
fix clang/test/CodeGenObjC/try.m, a basereg doesn't mean no global anymore.

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

15 years agofix a bunch of failures in the X86-64 JIT by tolerating RIP as
Chris Lattner [Sat, 27 Jun 2009 04:46:33 +0000 (04:46 +0000)]
fix a bunch of failures in the X86-64 JIT by tolerating RIP as
a base register.  We just ignore it for now.

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

15 years agofactor some logic out into a helper function, allow remat of loads from constant
Chris Lattner [Sat, 27 Jun 2009 04:38:55 +0000 (04:38 +0000)]
factor some logic out into a helper function, allow remat of loads from constant
globals.  This implements remat-constant.ll even without aggressive-remat.

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

15 years agoReimplement rip-relative addressing in the X86-64 backend. The new
Chris Lattner [Sat, 27 Jun 2009 04:16:01 +0000 (04:16 +0000)]
Reimplement rip-relative addressing in the X86-64 backend.  The new
implementation primarily differs from the former in that the asmprinter
doesn't make a zillion decisions about whether or not something will be
RIP relative or not.  Instead, those decisions are made by isel lowering
and propagated through to the asm printer.  To achieve this, we:

1. Represent RIP relative addresses by setting the base of the X86 addr
   mode to X86::RIP.
2. When ISel Lowering decides that it is safe to use RIP, it lowers to
   X86ISD::WrapperRIP.  When it is unsafe to use RIP, it lowers to
   X86ISD::Wrapper as before.
3. This removes isRIPRel from X86ISelAddressMode, representing it with
   a basereg of RIP instead.
4. The addressing mode matching logic in isel is greatly simplified.
5. The asmprinter is greatly simplified, notably the "NotRIPRel" predicate
   passed through various printoperand routines is gone now.
6. The various symbol printing routines in asmprinter now no longer infer
   when to emit (%rip), they just print the symbol.

I think this is a big improvement over the previous situation.  It does have
two small caveats though: 1. I implemented a horrible "no-rip" modifier for
the inline asm "P" constraint modifier.  This is a short term hack, there is
a much better, but more involved, solution.  2. I had to xfail an
-aggressive-remat testcase because it isn't handling the use of RIP in the
constant-pool reading instruction.  This specific test is easy to fix without
-aggressive-remat, which I intend to do next.

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

15 years agoremove some unneeded eh info.
Chris Lattner [Sat, 27 Jun 2009 04:07:31 +0000 (04:07 +0000)]
remove some unneeded eh info.

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

15 years agoWhen doing remat, don't consider uses of non-allocatable physregs. Patch
Chris Lattner [Sat, 27 Jun 2009 04:06:41 +0000 (04:06 +0000)]
When doing remat, don't consider uses of non-allocatable physregs.  Patch
by Evan.

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

15 years agoRenaming for consistency.
Evan Cheng [Sat, 27 Jun 2009 02:26:13 +0000 (02:26 +0000)]
Renaming for consistency.

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

15 years agotestcase for PR4466
Chris Lattner [Sat, 27 Jun 2009 01:33:35 +0000 (01:33 +0000)]
testcase for PR4466

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

15 years agoFix PR4466 by making fastisel set operand flags correctly.
Chris Lattner [Sat, 27 Jun 2009 01:31:51 +0000 (01:31 +0000)]
Fix PR4466 by making fastisel set operand flags correctly.

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

15 years agofix a typo that GCC should have caught that causes crashes with -view-*-dags
Chris Lattner [Sat, 27 Jun 2009 00:57:02 +0000 (00:57 +0000)]
fix a typo that GCC should have caught that causes crashes with -view-*-dags

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

15 years agoRemove outdated comment.
David Goodwin [Fri, 26 Jun 2009 23:39:02 +0000 (23:39 +0000)]
Remove outdated comment.

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

15 years agoWhen possible, use "mvn ra, rb" instead of "eor ra, rb, -1" because mvn has a narrow...
David Goodwin [Fri, 26 Jun 2009 23:13:13 +0000 (23:13 +0000)]
When possible, use "mvn ra, rb" instead of "eor ra, rb, -1" because mvn has a narrow version and eor(i) does not.

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

15 years agoAdd some testcases for some of the recent ScalarEvolution bug fixes.
Dan Gohman [Fri, 26 Jun 2009 22:54:11 +0000 (22:54 +0000)]
Add some testcases for some of the recent ScalarEvolution bug fixes.

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

15 years agoIncorporate the insertion point into the key of SCEVExpander's CSE map.
Dan Gohman [Fri, 26 Jun 2009 22:53:46 +0000 (22:53 +0000)]
Incorporate the insertion point into the key of SCEVExpander's CSE map.
This helps it avoid reusing an instruction that doesn't dominate all
of the users, in cases where the original instruction was inserted
before all of the users were known.  This may result in redundant
expansions of sub-expressions that depend on loop-unpredictable values
in some cases, however this isn't very common, and it primarily impacts
IndVarSimplify, so GVN can be expected to clean these up.

This eliminates the need for IndVarSimplify's FixUsesBeforeDefs,
which fixes several bugs.

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

15 years agoRemove unused routines.
Devang Patel [Fri, 26 Jun 2009 22:53:22 +0000 (22:53 +0000)]
Remove unused routines.

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

15 years agoAdd feature flags for AVX and FMA and fix some SSE4A feature flag
David Greene [Fri, 26 Jun 2009 22:46:54 +0000 (22:46 +0000)]
Add feature flags for AVX and FMA and fix some SSE4A feature flag
initialization problems.

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

15 years agoThumb-2 tests
David Goodwin [Fri, 26 Jun 2009 22:37:07 +0000 (22:37 +0000)]
Thumb-2 tests

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

15 years agoFix ScalarEvolution::getAddRecExpr's code which canonicalized the
Dan Gohman [Fri, 26 Jun 2009 22:36:20 +0000 (22:36 +0000)]
Fix ScalarEvolution::getAddRecExpr's code which canonicalized the
nesting order of nested AddRec expressions to skip the transformation
if it would introduce an AddRec with operands not loop-invariant
with respect to its loop.

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

15 years agoNewNightlyTest.pl: Support -submit-aux with -no-submit (run that aux script,
Daniel Dunbar [Fri, 26 Jun 2009 22:33:28 +0000 (22:33 +0000)]
NewNightlyTest.pl: Support -submit-aux with -no-submit (run that aux script,
instead of skipping).

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

15 years agoAdd missing argument for vtbx intrinsic.
Bob Wilson [Fri, 26 Jun 2009 22:27:22 +0000 (22:27 +0000)]
Add missing argument for vtbx intrinsic.

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

15 years agoFix SCEVAddRecExpr::isLoopInvariant to test if all of its operands
Dan Gohman [Fri, 26 Jun 2009 22:17:21 +0000 (22:17 +0000)]
Fix SCEVAddRecExpr::isLoopInvariant to test if all of its operands
are loop invariant, not just the start operand.

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

15 years agoremove unwind info, add test for asmprinting of jump table labels with (%rip)
Chris Lattner [Fri, 26 Jun 2009 22:16:49 +0000 (22:16 +0000)]
remove unwind info, add test for asmprinting of jump table labels with (%rip)

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

15 years agoAdd x86 support for 'n' inline asm modifier. This will be handled target independentl...
Evan Cheng [Fri, 26 Jun 2009 22:00:19 +0000 (22:00 +0000)]
Add x86 support for 'n' inline asm modifier. This will be handled target independently as part of MC work.

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

15 years agosimplify printing of MO_ExternalSymbol in a non-pcrel context.
Chris Lattner [Fri, 26 Jun 2009 21:47:27 +0000 (21:47 +0000)]
simplify printing of MO_ExternalSymbol in a non-pcrel context.

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

15 years agoAdd intrinsics for ARM NEON vtbl and vtbx operations.
Bob Wilson [Fri, 26 Jun 2009 21:45:05 +0000 (21:45 +0000)]
Add intrinsics for ARM NEON vtbl and vtbx operations.

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

15 years agoPrivatize some data.
Owen Anderson [Fri, 26 Jun 2009 21:45:04 +0000 (21:45 +0000)]
Privatize some data.

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

15 years agoConstify this value.
Owen Anderson [Fri, 26 Jun 2009 21:39:56 +0000 (21:39 +0000)]
Constify this value.

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

15 years agoSplit thumb-related stuff into separate classes.
Anton Korobeynikov [Fri, 26 Jun 2009 21:28:53 +0000 (21:28 +0000)]
Split thumb-related stuff into separate classes.
Step 1: ARMInstructionInfo => {ARM,Thumb}InstructionInfo

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

15 years agoadd %rip to the GR64 register class. Lets avoid allocating it to anything though! :)
Chris Lattner [Fri, 26 Jun 2009 21:25:00 +0000 (21:25 +0000)]
add %rip to the GR64 register class.  Lets avoid allocating it to anything though! :)

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

15 years agoMove all the TLS processing logic into isel, don't do it in asmprinter at all.
Chris Lattner [Fri, 26 Jun 2009 21:20:29 +0000 (21:20 +0000)]
Move all the TLS processing logic into isel, don't do it in asmprinter at all.

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

15 years agomake sure to propagate operand flags in SelectTLSADDRAddr properly.
Chris Lattner [Fri, 26 Jun 2009 21:18:37 +0000 (21:18 +0000)]
make sure to propagate operand flags in SelectTLSADDRAddr properly.

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

15 years agofix a really subtle bug in the cross section of aliases and TLS:
Chris Lattner [Fri, 26 Jun 2009 21:14:05 +0000 (21:14 +0000)]
fix a really subtle bug in the cross section of aliases and TLS:
the SelectionDAG::getGlobalAddress function properly looks through
aliases to determine thread-localness, but then passes the GV* down
to GlobalAddressSDNode::GlobalAddressSDNode which does not.  Instead
of passing down isTarget, just pass down the predetermined node
opcode.  This fixes some assertions with out of tree changes I'm
working on.

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

15 years agoThumb-2 has CLZ.
David Goodwin [Fri, 26 Jun 2009 20:47:43 +0000 (20:47 +0000)]
Thumb-2 has CLZ.

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

15 years agoUse "adcs/sbcs" only when the carry-out is live, otherwise use "adc/sbc".
David Goodwin [Fri, 26 Jun 2009 20:45:56 +0000 (20:45 +0000)]
Use "adcs/sbcs" only when the carry-out is live, otherwise use "adc/sbc".

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

15 years agoDelete LoopPass::runOnFunctionBody. It was never used or implemented.
Jeffrey Yasskin [Fri, 26 Jun 2009 20:42:50 +0000 (20:42 +0000)]
Delete LoopPass::runOnFunctionBody.  It was never used or implemented.

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

15 years agoGet rid of these cache variables, which are a holdover from the days when
Owen Anderson [Fri, 26 Jun 2009 20:33:47 +0000 (20:33 +0000)]
Get rid of these cache variables, which are a holdover from the days when
we had multiple type planes and these lookups were expensive.

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

15 years agoMake this const.
Owen Anderson [Fri, 26 Jun 2009 20:21:18 +0000 (20:21 +0000)]
Make this const.

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

15 years agominor cleanup/framework changes.
Chris Lattner [Fri, 26 Jun 2009 20:00:05 +0000 (20:00 +0000)]
minor cleanup/framework changes.

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

15 years agoPrivatize some variables.
Owen Anderson [Fri, 26 Jun 2009 19:48:37 +0000 (19:48 +0000)]
Privatize some variables.

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

15 years agomove magic for PIC constantpool references from asmprinter to isel.
Chris Lattner [Fri, 26 Jun 2009 19:22:52 +0000 (19:22 +0000)]
move magic for PIC constantpool references from asmprinter to isel.

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

15 years agoimplement DOTGraphTraits<SelectionDAG*>::getNodeLabel in terms of
Chris Lattner [Fri, 26 Jun 2009 19:06:10 +0000 (19:06 +0000)]
implement DOTGraphTraits<SelectionDAG*>::getNodeLabel in terms of
SDNode::print_details to eliminate a ton of near-duplicate code.

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

15 years agouse jump table operand flags in asm printer instead of "magic predicates"
Chris Lattner [Fri, 26 Jun 2009 18:55:01 +0000 (18:55 +0000)]
use jump table operand flags in asm printer instead of "magic predicates"

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

15 years agoMore spelling Count as count.
Daniel Dunbar [Fri, 26 Jun 2009 18:35:07 +0000 (18:35 +0000)]
More spelling Count as count.

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

15 years agoSwap order of arguments to vst[34]* intrinsics. This matches the order
Bob Wilson [Fri, 26 Jun 2009 18:23:29 +0000 (18:23 +0000)]
Swap order of arguments to vst[34]* intrinsics.  This matches the order
used by both the user-visible intrinsics defined by ARM and the
corresponding GCC builtins.

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

15 years agoSpell Count as count.
Daniel Dunbar [Fri, 26 Jun 2009 18:21:54 +0000 (18:21 +0000)]
Spell Count as count.

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

15 years agoAdd Thumb-2 tests.
David Goodwin [Fri, 26 Jun 2009 18:10:30 +0000 (18:10 +0000)]
Add Thumb-2 tests.

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

15 years agoUse atomic operations for accessing this global counter.
Owen Anderson [Fri, 26 Jun 2009 18:09:03 +0000 (18:09 +0000)]
Use atomic operations for accessing this global counter.

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

15 years agoADC used to implement adde should use "adcs" opcode instead of "adc".
David Goodwin [Fri, 26 Jun 2009 18:07:25 +0000 (18:07 +0000)]
ADC used to implement adde should use "adcs" opcode instead of "adc".

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

15 years agoGet rid of unnecessary global variables.
Owen Anderson [Fri, 26 Jun 2009 16:46:15 +0000 (16:46 +0000)]
Get rid of unnecessary global variables.

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

15 years agoORN and BIC tests.
David Goodwin [Fri, 26 Jun 2009 16:20:06 +0000 (16:20 +0000)]
ORN and BIC tests.

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

15 years agoCurrently there is a pattern for the thumb-2 MOV 16-bit immediate instruction. That...
David Goodwin [Fri, 26 Jun 2009 16:10:07 +0000 (16:10 +0000)]
Currently there is a pattern for the thumb-2 MOV 16-bit immediate instruction. That instruction cannot write the flags so it should use T2I instead of T2sI.
Also, added a pattern for the thumb-2 MOV of shifted immediate since that can encode immediates not encodable by the 16-bit immediate.

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

15 years agoFix linking of llvm-ld and lli with CMake, from Xerxes Rånby
Douglas Gregor [Fri, 26 Jun 2009 15:37:00 +0000 (15:37 +0000)]
Fix linking of llvm-ld and lli with CMake, from Xerxes Rånby

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

15 years agoCMake: add configure checks for pthread_rwlock_init and pthread_getspecific
Douglas Gregor [Fri, 26 Jun 2009 14:35:43 +0000 (14:35 +0000)]
CMake: add configure checks for pthread_rwlock_init and pthread_getspecific

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

15 years agoFix compilation without pthreads.
Owen Anderson [Fri, 26 Jun 2009 08:48:03 +0000 (08:48 +0000)]
Fix compilation without pthreads.

Patch by Xerxes Ranby.

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

15 years agoFix tests: Count -> count.
Evan Cheng [Fri, 26 Jun 2009 07:05:57 +0000 (07:05 +0000)]
Fix tests: Count -> count.

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

15 years agoIndentation.
Evan Cheng [Fri, 26 Jun 2009 06:57:16 +0000 (06:57 +0000)]
Indentation.

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

15 years agoSimplify predicate CarryDefIsUsed.
Evan Cheng [Fri, 26 Jun 2009 06:10:18 +0000 (06:10 +0000)]
Simplify predicate CarryDefIsUsed.

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

15 years agoFix a CodeGenDAGPatterns bug. Check if top level predicates match when it's looking...
Evan Cheng [Fri, 26 Jun 2009 05:59:16 +0000 (05:59 +0000)]
Fix a CodeGenDAGPatterns bug. Check if top level predicates match when it's looking for duplicates.

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