oota-llvm.git
12 years agoAdd support for the 'X' inline asm operand modifier.
Eric Christopher [Thu, 10 May 2012 21:48:22 +0000 (21:48 +0000)]
Add support for the 'X' inline asm operand modifier.

Patch by Jack Carter.

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

12 years agomisched: Print machineinstrs with -debug-only=misched
Andrew Trick [Thu, 10 May 2012 21:06:21 +0000 (21:06 +0000)]
misched: Print machineinstrs with -debug-only=misched

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

12 years agomisched: tracing register pressure heuristics.
Andrew Trick [Thu, 10 May 2012 21:06:19 +0000 (21:06 +0000)]
misched: tracing register pressure heuristics.

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

12 years agomisched: Add register pressure backoff to ConvergingScheduler.
Andrew Trick [Thu, 10 May 2012 21:06:16 +0000 (21:06 +0000)]
misched: Add register pressure backoff to ConvergingScheduler.

Prioritize the instruction that comes closest to keeping pressure
under the target's limit. Then prioritize instructions that avoid
increasing the max pressure in the scheduled region. The max pressure
heuristic is a tad aggressive. Later I'll fix it to consider the
unscheduled pressure as well.

WIP: This is mostly functional but untested and not likely to do much good yet.

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

12 years agomisched: Release only unscheduled nodes into ReadyQ.
Andrew Trick [Thu, 10 May 2012 21:06:14 +0000 (21:06 +0000)]
misched: Release only unscheduled nodes into ReadyQ.

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

12 years agomisched: Added ReadyQ container wrapper for Top and Bottom Queues.
Andrew Trick [Thu, 10 May 2012 21:06:12 +0000 (21:06 +0000)]
misched: Added ReadyQ container wrapper for Top and Bottom Queues.

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

12 years agomisched: Introducing Top and Bottom register pressure trackers during scheduling.
Andrew Trick [Thu, 10 May 2012 21:06:10 +0000 (21:06 +0000)]
misched: Introducing Top and Bottom register pressure trackers during scheduling.

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

12 years agoHexagon V5 Support - V5 td file.
Sirish Pande [Thu, 10 May 2012 20:24:28 +0000 (20:24 +0000)]
Hexagon V5 Support - V5 td file.

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

12 years agoHexagon V5 FP Support.
Sirish Pande [Thu, 10 May 2012 20:20:25 +0000 (20:20 +0000)]
Hexagon V5 FP Support.

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

12 years agoRegPressure: API for speculatively checking instruction pressure.
Andrew Trick [Thu, 10 May 2012 19:11:52 +0000 (19:11 +0000)]
RegPressure: API for speculatively checking instruction pressure.

Added getMaxExcessUpward/DownwardPressure. They somewhat abuse the
tracker by speculatively handling an instruction out of order. But it
is convenient for now. In the future, we will cache each instruction's
pressure contribution to make this efficient.

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

12 years agoRegPressure: fix array index iteration style.
Andrew Trick [Thu, 10 May 2012 19:11:49 +0000 (19:11 +0000)]
RegPressure: fix array index iteration style.

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

12 years agoTeach DeadStoreElimination to eliminate exit-block stores with phi addresses.
Dan Gohman [Thu, 10 May 2012 18:57:38 +0000 (18:57 +0000)]
Teach DeadStoreElimination to eliminate exit-block stores with phi addresses.

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

12 years agoRevert: 156550 "ARM: peephole optimization to remove cmp instruction"
Manman Ren [Thu, 10 May 2012 18:49:43 +0000 (18:49 +0000)]
Revert: 156550 "ARM: peephole optimization to remove cmp instruction"

This commit broke an external linux bot and gave a compile-time warning.

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

12 years agoPrecompute lists of explicit sub-registers and indices.
Jakob Stoklund Olesen [Thu, 10 May 2012 17:46:18 +0000 (17:46 +0000)]
Precompute lists of explicit sub-registers and indices.

The .td files specify a tree of sub-registers. Store that tree as
ExplicitSubRegs lists in CodeGenRegister instead of extracting it from
the Record when needed.

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

12 years agoRewrite ScalarEvolution::hasOperand to use an explicit worklist instead
Dan Gohman [Thu, 10 May 2012 17:21:30 +0000 (17:21 +0000)]
Rewrite ScalarEvolution::hasOperand to use an explicit worklist instead
of recursion, to avoid excessive stack usage on deep expressions.

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

12 years agoteach DSE and isInstructionTriviallyDead() about calloc
Nuno Lopes [Thu, 10 May 2012 17:14:00 +0000 (17:14 +0000)]
teach DSE and isInstructionTriviallyDead() about calloc

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

12 years agoformatting change: strip debug info from test
Joel Jones [Thu, 10 May 2012 16:55:31 +0000 (16:55 +0000)]
formatting change: strip debug info from test

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

12 years agoARM: peephole optimization to remove cmp instruction
Manman Ren [Thu, 10 May 2012 16:48:21 +0000 (16:48 +0000)]
ARM: peephole optimization to remove cmp instruction

This patch will optimize the following cases:
  sub r1, r3 | sub r1, imm
  cmp r3, r1 or cmp r1, r3 | cmp r1, imm
  bge L1

TO
  subs r1, r3
  bge  L1 or ble L1

If the branch instruction can use flag from "sub", then we can replace
"sub" with "subs" and eliminate the "cmp" instruction.

rdar: 10734411

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

12 years agoFix a problem with incomplete equality testing of PHINodes in
Joel Jones [Thu, 10 May 2012 15:59:41 +0000 (15:59 +0000)]
Fix a problem with incomplete equality testing of PHINodes in
Instruction::IsIdenticalToWhenDefined.

This manifested itself when inlining two calls to the same function.  The
inlined function had a switch statement that returned one of a set of
global variables.  Without this modification, the two phi instructions that
chose values from the branches of the switch instruction inlined from the
callee were considered equivalent and jump-threading replaced a load for the
first switch value with a phi selecting from the second switch, thereby
producing incorrect code.

This patch has been tested with "make check-all", "lnt runteste nt", and
llvm self-hosted, and on the original program that had this problem,
wireshark.

<rdar://problem/11025519>

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

12 years agoFix merge-typo and cleanup
Nadav Rotem [Thu, 10 May 2012 12:50:02 +0000 (12:50 +0000)]
Fix merge-typo and cleanup

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

12 years agoAVX2: Add an additional broadcast idiom.
Nadav Rotem [Thu, 10 May 2012 12:39:13 +0000 (12:39 +0000)]
AVX2: Add an additional broadcast idiom.

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

12 years agoGenerate AVX/AVX2 shuffles even when there is a memory op somewhere else in the program.
Nadav Rotem [Thu, 10 May 2012 12:22:05 +0000 (12:22 +0000)]
Generate AVX/AVX2 shuffles even when there is a memory op somewhere else in the program.
Starting r155461 we are able to select patterns for vbroadcast even when the load op is used by other users.

Fix PR11900.

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

12 years agoFix TableGen's RegPressureSet weight normalization to handle subreg DAGS.
Andrew Trick [Thu, 10 May 2012 00:32:15 +0000 (00:32 +0000)]
Fix TableGen's RegPressureSet weight normalization to handle subreg DAGS.

I initially assumed that the subreg graph was a tree. That may not be true.

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

12 years agoExecutionEngine: Check for NULL ErrorStr before using it.
Jim Grosbach [Thu, 10 May 2012 00:31:50 +0000 (00:31 +0000)]
ExecutionEngine: Check for NULL ErrorStr before using it.

Patch by Yury Mikhaylov <yury.mikhaylov@gmail.com>.

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

12 years agoFix warning text.
Jakob Stoklund Olesen [Wed, 9 May 2012 23:43:30 +0000 (23:43 +0000)]
Fix warning text.

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

12 years agoFix the objc_storeStrong recognizer to stop before walking off the
Dan Gohman [Wed, 9 May 2012 23:08:33 +0000 (23:08 +0000)]
Fix the objc_storeStrong recognizer to stop before walking off the
end of a basic block if there's no store.

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

12 years agoCompute a backwards SubReg -> SubRegIndex map for each register.
Jakob Stoklund Olesen [Wed, 9 May 2012 22:15:00 +0000 (22:15 +0000)]
Compute a backwards SubReg -> SubRegIndex map for each register.

This mapping is for internal use by TableGen. It will not be exposed in
the generated files.

Unfortunately, the mapping is not completely well-defined. The X86 xmm
registers appear with multiple sub-register indices in the ymm
registers. This is because of the odd idempotent sub_sd and sub_ss
sub-register indices. I hope to be able to eliminate them entirely, so
we can require the sub-registers to form a tree.

For now, just place the canonical sub_xmm index in the mapping, and
ignore the idempotents.

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

12 years agoRename getSubRegs() to computeSubRegs().
Jakob Stoklund Olesen [Wed, 9 May 2012 22:09:17 +0000 (22:09 +0000)]
Rename getSubRegs() to computeSubRegs().

That's what it does.

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

12 years agoobjectsize:
Nuno Lopes [Wed, 9 May 2012 21:30:57 +0000 (21:30 +0000)]
objectsize:
refactor code a bit to enable future changes to support run-time information
add support to compute allocation sizes at run-time if penalty > 1 (e.g., malloc(x), calloc(x, y), and VLAs)

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

12 years agoAdd unittests for Triple::getMacOSXVersion and Triple::getiOSVersion.
Chad Rosier [Wed, 9 May 2012 19:31:41 +0000 (19:31 +0000)]
Add unittests for Triple::getMacOSXVersion and Triple::getiOSVersion.

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

12 years agoAdded a regress test for the bug #9964 before close it.
Danil Malyshev [Wed, 9 May 2012 19:07:04 +0000 (19:07 +0000)]
Added a regress test for the bug #9964 before close it.
This bug was fixed by Jim Grosbach in #138879, thanks Jim!

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

12 years agoMark .opd @progbits, thus avoiding a warning from asm.
Roman Divacky [Wed, 9 May 2012 18:24:23 +0000 (18:24 +0000)]
Mark .opd @progbits, thus avoiding a warning from asm.

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

12 years agoSet the default iOS version to 3.0.
Chad Rosier [Wed, 9 May 2012 18:23:00 +0000 (18:23 +0000)]
Set the default iOS version to 3.0.

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

12 years agoUse the cpuid 64 bit flag to pick the default CPU name for an unknown model.
Bob Wilson [Wed, 9 May 2012 17:47:03 +0000 (17:47 +0000)]
Use the cpuid 64 bit flag to pick the default CPU name for an unknown model.

For the Family 6 switch in sys::getHostCPUName, an unrecognized model was
reported as "i686".  That's a really bad default since it means that new
CPUs will be treated as if they can only use 32-bit code.  This just looks
at the cpuid extended feature flag for 64 bit support, and if that is set,
it uses a default x86-64 cpu.  Similar logic is already used for the Family
15 code.  <rdar://problem/11314502>

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

12 years agoDon't return true on a function with a void return type.
Chad Rosier [Wed, 9 May 2012 17:38:47 +0000 (17:38 +0000)]
Don't return true on a function with a void return type.

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

12 years agoAdd Triple::getiOSVersion.
Chad Rosier [Wed, 9 May 2012 17:23:48 +0000 (17:23 +0000)]
Add Triple::getiOSVersion.

This new function provides a way to get the iOS version number from ios triples.
Part of rdar://11409204

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

12 years agoIntroduce llvm-c function LLVMPrintModuleToFile.
Hans Wennborg [Wed, 9 May 2012 16:54:17 +0000 (16:54 +0000)]
Introduce llvm-c function LLVMPrintModuleToFile.

This lets you save the textual representation of the LLVM IR to a file.
Before this patch it could only be printed to STDERR from llvm-c.

Patch by Carlo Kok!

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

12 years agochange the objectsize intrinsic signature: add a 3rd parameter to denote the maximum...
Nuno Lopes [Wed, 9 May 2012 15:52:43 +0000 (15:52 +0000)]
change the objectsize intrinsic signature: add a 3rd parameter to denote the maximum runtime performance penalty that the user is willing to accept.
This commit only adds the parameter. Code taking advantage of it will follow.

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

12 years agoMake it possible to switch off solution folders. VS Express does not support
Manuel Klimek [Wed, 9 May 2012 15:10:54 +0000 (15:10 +0000)]
Make it possible to switch off solution folders. VS Express does not support
them, and requires the user to click away one error message per folder on
project load.

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

12 years agoFixed a typo
Filipe Cabecinhas [Wed, 9 May 2012 14:43:50 +0000 (14:43 +0000)]
Fixed a typo

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

12 years agoSupply a C interface to the "LinkModules" method.
Bill Wendling [Wed, 9 May 2012 08:55:40 +0000 (08:55 +0000)]
Supply a C interface to the "LinkModules" method.
Patch by Andrew Wilkins!

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

12 years agoRemove unused variable to get rid of warning.
Craig Topper [Wed, 9 May 2012 07:08:58 +0000 (07:08 +0000)]
Remove unused variable to get rid of warning.

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

12 years agoAdd another peephole pattern for conditional moves.
Akira Hatanaka [Wed, 9 May 2012 02:29:29 +0000 (02:29 +0000)]
Add another peephole pattern for conditional moves.

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

12 years agoUse ptr_rc_tailcall instead of GR32_TC.
Jakob Stoklund Olesen [Wed, 9 May 2012 01:50:09 +0000 (01:50 +0000)]
Use ptr_rc_tailcall instead of GR32_TC.

The getPointerRegClass() hook will return GR32_TC, or whatever is
appropriate for the current function.

Patch by Yiannis Tsiouris!

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

12 years agoMake register FP allocatable if the compiled function does not have dynamic
Akira Hatanaka [Wed, 9 May 2012 01:38:13 +0000 (01:38 +0000)]
Make register FP allocatable if the compiled function does not have dynamic
allocas.

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

12 years agoExpand 64-bit shifts if target ABI is O32.
Akira Hatanaka [Wed, 9 May 2012 00:55:21 +0000 (00:55 +0000)]
Expand 64-bit shifts if target ABI is O32.

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

12 years agoRemove unused variable to silence compiler warning.
Richard Trieu [Wed, 9 May 2012 00:30:21 +0000 (00:30 +0000)]
Remove unused variable to silence compiler warning.

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

12 years agoDo not install llvm-config-host for cross-builds of clang. rdar://11317847
Bob Wilson [Wed, 9 May 2012 00:07:02 +0000 (00:07 +0000)]
Do not install llvm-config-host for cross-builds of clang. rdar://11317847

My previous change to install llvm-config-host for cross-builds resulted
in that file being installed even when the normal llvm-config was not
installed, e.g., when building the install-clang target.  Daniel suggested
this alternative, which solves the immediate problem and also avoids the gunk
in the top-level makefile.

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

12 years agoMiscellaneous accumulated cleanups.
Dan Gohman [Tue, 8 May 2012 23:39:44 +0000 (23:39 +0000)]
Miscellaneous accumulated cleanups.

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

12 years agoFix it so llvm-objdump -arch does accept x86 and x86-64 as valid arch names.
Kevin Enderby [Tue, 8 May 2012 23:38:45 +0000 (23:38 +0000)]
Fix it so llvm-objdump -arch does accept x86 and x86-64 as valid arch names.
PR12731.  Patch by Meador Inge!

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

12 years agoadd to 3.1 release notes
Seth Cantrell [Tue, 8 May 2012 23:34:38 +0000 (23:34 +0000)]
add to 3.1 release notes

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

12 years agoFix objc_storeStrong pattern matching to catch a potential use of the
Dan Gohman [Tue, 8 May 2012 23:34:08 +0000 (23:34 +0000)]
Fix objc_storeStrong pattern matching to catch a potential use of the
old value after the store but before it is released.
This fixes rdar:/11116986.

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

12 years agoUse a shared function for a common operation.
Jakob Stoklund Olesen [Tue, 8 May 2012 23:27:30 +0000 (23:27 +0000)]
Use a shared function for a common operation.

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

12 years agoFix thinko in conditional.
Eric Christopher [Tue, 8 May 2012 21:24:39 +0000 (21:24 +0000)]
Fix thinko in conditional.

Part of rdar://11352000 and should bring the buildbots back.

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

12 years agoDAGCombiner should not change the type of an extract_vector index.
Jim Grosbach [Tue, 8 May 2012 20:56:07 +0000 (20:56 +0000)]
DAGCombiner should not change the type of an extract_vector index.

When a combine twiddles an extract_vector, care should be take to preserve
the type of the index operand. No luck extracting a reasonable testcase,
unfortunately.

rdar://11391009

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

12 years agoRemove empty directories.
Daniel Dunbar [Tue, 8 May 2012 20:51:37 +0000 (20:51 +0000)]
Remove empty directories.

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

12 years agoRemove excess semi-colons to quiet warnings.
Eric Christopher [Tue, 8 May 2012 20:45:04 +0000 (20:45 +0000)]
Remove excess semi-colons to quiet warnings.

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

12 years ago[Support] Fix sys::GetRandomNumber() to always use a high quality seed.
Daniel Dunbar [Tue, 8 May 2012 20:38:00 +0000 (20:38 +0000)]
[Support] Fix sys::GetRandomNumber() to always use a high quality seed.

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

12 years agoUpdate load/store instruction patterns in Hexagon V4.
Sirish Pande [Tue, 8 May 2012 19:50:20 +0000 (19:50 +0000)]
Update load/store instruction patterns in Hexagon V4.

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

12 years agoFormatting fixes.
Akira Hatanaka [Tue, 8 May 2012 19:14:42 +0000 (19:14 +0000)]
Formatting fixes.

Patch by Jack Carter.

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

12 years agoDefine mips16 instruction formats.
Akira Hatanaka [Tue, 8 May 2012 19:08:58 +0000 (19:08 +0000)]
Define mips16 instruction formats.

Patch by Reed Kotler.

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

12 years agoHandle OpDeref in case it comes in as a register operand.
Eric Christopher [Tue, 8 May 2012 18:56:00 +0000 (18:56 +0000)]
Handle OpDeref in case it comes in as a register operand.

Part of rdar://11352000

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

12 years agoUpdate comment.
Eric Christopher [Tue, 8 May 2012 18:55:57 +0000 (18:55 +0000)]
Update comment.

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

12 years agoRevert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this
Daniel Dunbar [Tue, 8 May 2012 18:26:07 +0000 (18:26 +0000)]
Revert r156393, "[tests] Remove some remaining DejaGNU related cruft.", this
patch wasn't ready yet.

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

12 years ago[tests] Remove some remaining DejaGNU related cruft.
Daniel Dunbar [Tue, 8 May 2012 18:11:49 +0000 (18:11 +0000)]
[tests] Remove some remaining DejaGNU related cruft.

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

12 years agoAdding -fcolor-diagnostics is causing problem to users that parse the build
Rafael Espindola [Tue, 8 May 2012 18:11:06 +0000 (18:11 +0000)]
Adding -fcolor-diagnostics is causing problem to users that parse the build
output. Peter Collingbourne also reports that it is showing up in
$(llvm-config --cflags).

Revert this for now since I don't know enough cmake to fix it properly.

This reverts commit 18efed7adc79c1970f307bb5b015d199012ba872.

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

12 years agoRegenerate configure.
Daniel Dunbar [Tue, 8 May 2012 17:48:32 +0000 (17:48 +0000)]
Regenerate configure.

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

12 years ago[docs] Remove POD based man page docs (and build system support).
Daniel Dunbar [Tue, 8 May 2012 17:48:21 +0000 (17:48 +0000)]
[docs] Remove POD based man page docs (and build system support).
 - Currently this leaves us with less build system support (e.g., installing man pages) for the docs than is desired. I'm working on fixing this, but it may take a while. If someone finds this particularly egregious let me know and I will prioritize it.

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

12 years agoremove autoupgrade code for old function attributes format.
Nuno Lopes [Tue, 8 May 2012 17:07:35 +0000 (17:07 +0000)]
remove autoupgrade code for old function attributes format.
I still left another fixme regarding alignment, because I'm unsure how to remove that code without breaking things

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

12 years ago[docs] Add support for building man pages using Sphinx.
Daniel Dunbar [Tue, 8 May 2012 16:50:47 +0000 (16:50 +0000)]
[docs] Add support for building man pages using Sphinx.

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

12 years ago[docs] Integrate the command guide into the toctree.
Daniel Dunbar [Tue, 8 May 2012 16:50:43 +0000 (16:50 +0000)]
[docs] Integrate the command guide into the toctree.

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

12 years ago[docs] Add ReST version of all the man pages.
Daniel Dunbar [Tue, 8 May 2012 16:50:35 +0000 (16:50 +0000)]
[docs] Add ReST version of all the man pages.
 - The POD versions are slated for execution, but are still around until
   llvm.org machinery is in place.

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

12 years agoremove TYPE_CODE_FUNCTION_OLD type code. it is no longer in use and it was marked...
Nuno Lopes [Tue, 8 May 2012 16:16:20 +0000 (16:16 +0000)]
remove TYPE_CODE_FUNCTION_OLD type code. it is no longer in use and it was marked for removal in 3.0

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

12 years agos/CSR_Ghc/CSR_NoRegs/
Jakob Stoklund Olesen [Tue, 8 May 2012 15:07:29 +0000 (15:07 +0000)]
s/CSR_Ghc/CSR_NoRegs/

Share the CalleeSavedRegs defs between all calling conventions having no
callee-saved registers.

Patch by Yiannis Tsiouris!

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

12 years agoLit: rewind WinWaitReleased() stuff in TestRunner.
NAKAMURA Takumi [Tue, 8 May 2012 14:31:52 +0000 (14:31 +0000)]
Lit: rewind WinWaitReleased() stuff in TestRunner.

r145222 "lit/TestRunner.py: [Win32] Introduce WinWaitReleased(f), to wait for file handles to be released by children."
r145223 "lit/TestRunner.py: Use RemoveForce()."
r145381 "lit/TestRunner.py: Try to catch ERROR_FILE_NOT_FOUND, too."
r152916 "lit/TestRunner.py: [Win32] Check all opened_files[] released, rather than (obsoleted) written_files[]."
r153172 "lit/TestRunner.py: [Win32] Rework WinWaitReleased() again! "win32file" from Python Win32 Extensions."

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

12 years agoWindows/PathV2.inc: Retry rename() for (maximum) 2 seconds.
NAKAMURA Takumi [Tue, 8 May 2012 14:31:46 +0000 (14:31 +0000)]
Windows/PathV2.inc: Retry rename() for (maximum) 2 seconds.

Files might be opend by system scanners (eg. file indexer, virus scanner, &c).

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

12 years agoCalling ReassociateExpression recursively is extremely dangerous since it will
Duncan Sands [Tue, 8 May 2012 12:16:05 +0000 (12:16 +0000)]
Calling ReassociateExpression recursively is extremely dangerous since it will
replace the operands of expressions with only one use with undef and generate
a new expression for the original without using RAUW to update the original.
Thus any copies of the original expression held in a vector may end up
referring to some bogus value - and using a ValueHandle won't help since there
is no RAUW.  There is already a mechanism for getting the effect of recursion
non-recursively: adding the value to be recursed on to RedoInsts.  But it wasn't
being used systematically.  Have various places where recursion had snuck in at
some point use the RedoInsts mechanism instead.  Fixes PR12169.

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

12 years agoRejected r156374: Ordinary PR1255 patch. Due to clang-x86_64-debian-fnt buildbot...
Stepan Dyatkovskiy [Tue, 8 May 2012 08:33:21 +0000 (08:33 +0000)]
Rejected r156374: Ordinary PR1255 patch. Due to clang-x86_64-debian-fnt buildbot failure.

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

12 years agoRemove 256-bit AVX non-temporal store intrinsics. Similar was previously done for...
Craig Topper [Tue, 8 May 2012 06:58:15 +0000 (06:58 +0000)]
Remove 256-bit AVX non-temporal store intrinsics. Similar was previously done for 128-bit.

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

12 years agoOrdinary patch for PR1255.
Stepan Dyatkovskiy [Tue, 8 May 2012 06:36:08 +0000 (06:36 +0000)]
Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of ConstantInt, externally cases wrapped within the ConstantRangesSet object.
Old methods of SwitchInst are also works well, but marked as deprecated. So on this stage we have no side effects except that I added support for case ranges in BitcodeReader/Writer, of course test for Bitcode is also added. Old "switch" format is also supported.

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

12 years agoAllow NULL LoopPassManager argument in UnrollLoop. PR12734.
Andrew Trick [Tue, 8 May 2012 02:52:09 +0000 (02:52 +0000)]
Allow NULL LoopPassManager argument in UnrollLoop. PR12734.

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

12 years agoExtract methods for joining physregs.
Jakob Stoklund Olesen [Tue, 8 May 2012 00:08:35 +0000 (00:08 +0000)]
Extract methods for joining physregs.

No functional change.

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

12 years agoNaming convention and whitespace. No functional change.
Jakob Stoklund Olesen [Mon, 7 May 2012 23:46:16 +0000 (23:46 +0000)]
Naming convention and whitespace. No functional change.

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

12 years agoCoalesce subreg-subreg copies.
Jakob Stoklund Olesen [Mon, 7 May 2012 22:57:55 +0000 (22:57 +0000)]
Coalesce subreg-subreg copies.

At least some of them:

  %vreg1:sub_16bit = COPY %vreg2:sub_16bit; GR64:%vreg1, GR32: %vreg2

Previously, we couldn't figure out that the above copy could be
eliminated by coalescing %vreg2 with %vreg1:sub_32bit.

The new getCommonSuperRegClass() hook makes it possible.

This is not very useful yet since the unmodified part of the destination
register usually interferes with the source register. The coalescer
needs to understand sub-register interference checking first.

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

12 years agoRemove C Backend from the bugpoint docs
Pete Cooper [Mon, 7 May 2012 22:42:40 +0000 (22:42 +0000)]
Remove C Backend from the bugpoint docs

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

12 years agoAdd an MF argument to TRI::getPointerRegClass() and TII::getRegClass().
Jakob Stoklund Olesen [Mon, 7 May 2012 22:10:26 +0000 (22:10 +0000)]
Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass().

The getPointerRegClass() hook can return register classes that depend on
the calling convention of the current function (ptr_rc_tailcall).

So far, we have been able to infer the calling convention from the
subtarget alone, but as we add support for multiple calling conventions
per target, that no longer works.

Patch by Yiannis Tsiouris!

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

12 years agoFix bug in TRI::getCommonSuperRegClass().
Jakob Stoklund Olesen [Mon, 7 May 2012 21:59:31 +0000 (21:59 +0000)]
Fix bug in TRI::getCommonSuperRegClass().

Test cases for this code are coming. It is not used for anything yet.

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

12 years agoTeach DAG combine to fold x-x to 0.0 when unsafe FP math is enabled.
Owen Anderson [Mon, 7 May 2012 20:51:25 +0000 (20:51 +0000)]
Teach DAG combine to fold x-x to 0.0 when unsafe FP math is enabled.

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

12 years agoTeach reassociate to commute FMul's and FAdd's in order to canonicalize the order...
Owen Anderson [Mon, 7 May 2012 20:47:23 +0000 (20:47 +0000)]
Teach reassociate to commute FMul's and FAdd's in order to canonicalize the order of their operands across instructions.  This allows for greater CSE opportunities.

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

12 years agoMake IntelJITEvents and OProfileJIT as optional libraries and add
Preston Gurd [Mon, 7 May 2012 19:38:40 +0000 (19:38 +0000)]
Make IntelJITEvents and OProfileJIT as optional libraries and add
optional library support to the llvm-build tool:
 - Add new command line parameter to llvm-build: “--enable-optional-libraries”
 - Add handing of new llvm-build library type “OptionalLibrary”
 - Update Cmake and automake build systems to pass correct flags to llvm-build
   based on configuration

Patch by Dan Malea!

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

12 years agoConstify (trivially) ImmutableSet::iterator::getVisitState().
Jordy Rose [Mon, 7 May 2012 19:24:40 +0000 (19:24 +0000)]
Constify (trivially) ImmutableSet::iterator::getVisitState().

This was probably intended all along.

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

12 years agoAdd TRI::getCommonSuperRegClass().
Jakob Stoklund Olesen [Mon, 7 May 2012 19:14:58 +0000 (19:14 +0000)]
Add TRI::getCommonSuperRegClass().

This function is a generalization of getMatchingSuperRegClass() to the
symmetric case where both sides are using a sub-register index. It will
find a super-register class and sub-register indexes that make this
diagram commute:

                                   PreA
                       SuperRC  ---------->  RCA

                          |                   |
                          |                   |
                     PreB |                   | SubA
                          |                   |
                          |                   |
                          V                   V

                         RCB    ----------> SubRC
                                   SubB

This can be used to coalesce copies like:

  %vreg1:sub16 = COPY %vreg2:sub16; GR64:%vreg1, GR32: %vreg2

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

12 years agoFix a regression from r147481. This combine should only happen if there is a
Chad Rosier [Mon, 7 May 2012 18:47:44 +0000 (18:47 +0000)]
Fix a regression from r147481.  This combine should only happen if there is a
single use.
rdar://11360370

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

12 years agoDon't assume size_t is unsigned long long.
Matt Beaumont-Gay [Mon, 7 May 2012 18:12:42 +0000 (18:12 +0000)]
Don't assume size_t is unsigned long long.

Fixes a -Woverflow warning from gcc when building for 32-bit platforms.

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

12 years agoX86: optimization for -(x != 0)
Manman Ren [Mon, 7 May 2012 18:06:23 +0000 (18:06 +0000)]
X86: optimization for -(x != 0)

This patch will optimize -(x != 0) on X86
FROM
cmpl $0x01,%edi
sbbl %eax,%eax
notl %eax
TO
negl %edi
sbbl %eax %eax

In order to generate negl, I added patterns in Target/X86/X86InstrCompiler.td:
def : Pat<(X86sub_flag 0, GR32:$src), (NEG32r GR32:$src)>;

rdar: 10961709

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

12 years agoAdd support for the 'x' constraint.
Eric Christopher [Mon, 7 May 2012 06:25:19 +0000 (06:25 +0000)]
Add support for the 'x' constraint.

Patch by Jack Carter.

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

12 years agoAdd support for the 'l' constraint.
Eric Christopher [Mon, 7 May 2012 06:25:15 +0000 (06:25 +0000)]
Add support for the 'l' constraint.

Patch by Jack Carter.

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

12 years agoAdd support for the 'c' constraint.
Eric Christopher [Mon, 7 May 2012 06:25:10 +0000 (06:25 +0000)]
Add support for the 'c' constraint.

Patch by Jack Carter.

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

12 years agoAdd support for the 'P' constraint.
Eric Christopher [Mon, 7 May 2012 06:25:02 +0000 (06:25 +0000)]
Add support for the 'P' constraint.

Patch by Jack Carter.

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

12 years agoFix trivial typo in llvm_move.
John McCall [Mon, 7 May 2012 06:00:23 +0000 (06:00 +0000)]
Fix trivial typo in llvm_move.

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