Kevin Enderby [Tue, 12 Mar 2013 18:12:17 +0000 (18:12 +0000)]
Remove the assert()'s from the LLVMCreateDisasmCPU() library API and just
return 0 to indicate failure to create the disassembler. A library routine
should not assert and just let the caller handler the error. For example
darwin's otool(1) will simply print an error if it ends up using a library
that is not configured for a target it wants:
% otool -tv ViewController.o
ViewController.o:
(__TEXT,__text) section
can't create arm llvm disassembler
This is much better than an abort which appears as a crash to the user or
even the assert when using a Debug+Asserts built library:
Assertion failed: (MAI && "Unable to create target asm info!"), function LLVMCreateDisasmCPU, file /Volumes/SandBox/llvm/lib/MC/MCDisassembler/Disassembler.cpp, line 47.
radr://
12539918
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176880
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Tue, 12 Mar 2013 17:37:31 +0000 (17:37 +0000)]
Add a doFinalization method to the DataLayout pass.
This pass is meant to be immutable, however it holds mutable state to cache StructLayouts.
This method will allow the pass manager to clear the mutable state between runs.
Note that unfortunately it is still necessary to have the destructor, even though it does the
same thing as doFinalization. This is because most TargetMachines embed a DataLayout on which
doFinalization isn't run as its never added to the pass manager.
I also didn't think it was necessary to complication things with a deInit method for which
doFinalization and ~DataLayout both call as there's only one field of mutable state. If we had
more fields to finalize i'd have added this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176877
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Wen Voung [Tue, 12 Mar 2013 16:27:52 +0000 (16:27 +0000)]
Revert the test moves from 176733. Use "REQUIRES: asserts" instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176873
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 12 Mar 2013 16:22:56 +0000 (16:22 +0000)]
Change the order of the operands in patchAndReplaceAllUsesWith so
that they're more consistent with Value::replaceAllUsesWith.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176872
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Tue, 12 Mar 2013 15:18:14 +0000 (15:18 +0000)]
Don't reserve R2 on Darwin/PPC
Now that only the register-scavenger version of the CR spilling code remains,
we no longer need the Darwin R2 hack. Darwin can use R0 as a spare register in
any case where the System V ABI uses it (R0 is special architecturally, and so
is reserved under all common ABIs).
A few test cases needed to be updated to reflect the register-allocation changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176868
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Tue, 12 Mar 2013 14:12:16 +0000 (14:12 +0000)]
PPC should always use the register scavenger for CR spilling
This removes the -disable-ppc[32|64]-regscavenger options; the code
that uses the register scavenger has been working well (and has been the default)
for some time, and we don't need options to enable the old (broken) CR spilling code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176865
91177308-0d34-0410-b5e6-
96231b3b80d8
Patrik Hagglund [Tue, 12 Mar 2013 13:18:30 +0000 (13:18 +0000)]
Small fix for cost analysis of ptrtoint.
This seems to be a "copy-paste error" introducecd in r156140.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176863
91177308-0d34-0410-b5e6-
96231b3b80d8
Patrik Hagglund [Tue, 12 Mar 2013 12:38:10 +0000 (12:38 +0000)]
In r169695, the address space limit for tests was replaced with a data
segment limit. Now, as a complement, add a stack space limit.
Otherwise, tests may grow undesirable large at inifinite
recursion. (Seen at r176838,
test/Assembler/2010-02-05-FunctionLocalMetadataBecomesNull.ll)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176862
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthew Curtis [Tue, 12 Mar 2013 12:20:51 +0000 (12:20 +0000)]
ReleaseNotes: Add Hexagon Target section
And mention removal of hexagonv2 and hexagonv3 support (r176859).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176860
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 12 Mar 2013 10:38:39 +0000 (10:38 +0000)]
Reflect reality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176858
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 12 Mar 2013 00:16:36 +0000 (00:16 +0000)]
[mips] Rename function and variable names to start with proper case. Fix typos.
Delete commented-out code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176844
91177308-0d34-0410-b5e6-
96231b3b80d8
Meador Inge [Tue, 12 Mar 2013 00:08:29 +0000 (00:08 +0000)]
LibCallSimplifier: optimize speed for short-lived instances
Nadav reported a performance regression due to the work I did to
merge the library call simplifier into instcombine [1]. The issue
is that a new LibCallSimplifier object is being created whenever
InstCombiner::runOnFunction is called. Every time a LibCallSimplifier
object is used to optimize a call it creates a hash table to map from
a function name to an object that optimizes functions of that name.
For short-lived LibCallSimplifier instances this is quite inefficient.
Especially for cases where no calls are actually simplified.
This patch fixes the issue by dropping the hash table and implementing
an explicit lookup function to correlate the function name to the object
that optimizes functions of that name. This avoids the cost of always
building and destroying the hash table in cases where the LibCallSimplifier
object is short-lived and avoids the cost of building the table when no
simplifications are actually preformed.
On a benchmark containing 100,000 calls where none of them are simplified
I noticed a 30% speedup. On a benchmark containing 100,000 calls where
all of them are simplified I noticed an 8% speedup.
[1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20130304/167639.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176840
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Mar 2013 23:39:23 +0000 (23:39 +0000)]
Remove support for versioned debug info.
Versioned debug info support has been a burden to maintain & also compromised
current debug info verification by causing test cases testing old debug info to
remain rather than being updated to the latest. It also makes it hard to add or
change the metadata schema by requiring various backwards-compatibility in the
DI* hierarchy.
So it's being removed in preparation for new changes to the schema to tidy up
old/unnecessary fields and add new fields needed for new debug info (well, new
to LLVM at least).
The more surprising part of this is the changes to DI*::Verify - this became
necessary due to the changes to AsmWriter. AsmWriter was relying on the version
test to decide which bits of metadata were actually debug info when printing
the comment annotations. Without the version information the tag numbers were
too common & it would print debug info on random metadata that happened to
start with an integer that matched a tag number. Instead this change makes the
Verify functions more precise (just adding "number of operands" checks - not
type checking those operands yet) & relies on that to decide which metadata is
debug info metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176838
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Mar 2013 23:21:19 +0000 (23:21 +0000)]
Add asserts to DIBuilder & fix DINameSpace::Verify to allow unnamed namespaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176837
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 11 Mar 2013 23:18:25 +0000 (23:18 +0000)]
Residual cleanup: live-out set is gone
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176836
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 11 Mar 2013 23:16:30 +0000 (23:16 +0000)]
llvm/test/CodeGen/R600/schedule-*.ll: Let them require +Asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176835
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Mar 2013 22:37:40 +0000 (22:37 +0000)]
Upgrading debug info test cases to be (more) compatible with the current debug info format.
These cases were found by further work to remove support for debug info
versioning. Common cleanups (other than changing the version info in the tag
field) included adding the last parameter to compile_units (recently added for
fission support) and other cases of trailing fields in lexical blocks, compile
units, and subprograms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176834
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Mar 2013 22:10:14 +0000 (22:10 +0000)]
Remove duplicate test contents.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176831
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 11 Mar 2013 21:44:37 +0000 (21:44 +0000)]
Fix a crasher newly introduced in r176659/r176649, where fast-isel tries to
lower an expect intrinsic that is a constant expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176830
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 11 Mar 2013 21:17:13 +0000 (21:17 +0000)]
Fixes disassembler crashes on 2013 Haswell RTM instructions.
rdar://
13318048
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176828
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 11 Mar 2013 20:53:00 +0000 (20:53 +0000)]
Don't remove a landing pad if the invoke requires a table entry.
An invoke may require a table entry. For instance, when the function it calls
is expected to throw.
<rdar://problem/
13360379>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176827
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Mon, 11 Mar 2013 18:15:06 +0000 (18:15 +0000)]
R600: Fix JUMP handling so that MachineInstr verification can occur
This allows R600 Target to use the newly created -verify-misched llc flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176819
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 11 Mar 2013 16:51:15 +0000 (16:51 +0000)]
Missing period in doc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176809
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 11 Mar 2013 16:30:26 +0000 (16:30 +0000)]
llvm/test/CodeGen/X86/handle-move.ll: Mark it as XFAIL:cygming. Investigating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176808
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Mon, 11 Mar 2013 16:25:16 +0000 (16:25 +0000)]
[docs] Remove explicit authorship.
In the spirit of r172109. Version control keeps a far more detailed
record of authorship anyways.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176807
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 11 Mar 2013 08:39:48 +0000 (08:39 +0000)]
Suppress atomic(32|64).ll as XFAIL on win32 codegen. Investigating.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176798
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 11 Mar 2013 08:19:28 +0000 (08:19 +0000)]
R600MachineScheduler.cpp: Fix use cases of dbgs(). Don't include <iostream> here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176797
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 11 Mar 2013 03:49:23 +0000 (03:49 +0000)]
Remove date from test case file name. The PR number provides a unique ID already.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176796
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 10 Mar 2013 22:01:44 +0000 (22:01 +0000)]
Correct this error message, and most importantly make it distinct from the
error above. Based on a patch by Peter Zotov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176794
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 10 Mar 2013 21:58:22 +0000 (21:58 +0000)]
Use LLVMBool instead of 'bool' in the C API. Based on a patch by Peter Zotov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176793
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Sun, 10 Mar 2013 20:57:42 +0000 (20:57 +0000)]
BBVectorize: Fixup debugging statements
After the recent data-structure improvements, a couple of debugging statements
were broken (printing pointer values).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176791
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sun, 10 Mar 2013 13:11:23 +0000 (13:11 +0000)]
Cleanup #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176787
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sun, 10 Mar 2013 01:15:14 +0000 (01:15 +0000)]
Remove unneeded #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176785
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sun, 10 Mar 2013 01:14:42 +0000 (01:14 +0000)]
Add some constantness in MachinePostDominators.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176784
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sun, 10 Mar 2013 00:34:01 +0000 (00:34 +0000)]
Remove unneeded #includes. Use forward declarations instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176783
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sun, 10 Mar 2013 00:20:16 +0000 (00:20 +0000)]
Remove unneeded #includes. Use forward declarations instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176782
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 9 Mar 2013 23:29:37 +0000 (23:29 +0000)]
Remove an unused member variable from HelpPrinter. Move another member variable to be a local variable in the only method that uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176778
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sat, 9 Mar 2013 22:56:09 +0000 (22:56 +0000)]
Don't glue users to extract_subreg when selecting the llvm.arm.ldrexd
intrinsic - it can cause impossible-to-schedule subgraphs to be
introduced.
PR15053.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176777
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 9 Mar 2013 19:34:14 +0000 (19:34 +0000)]
Remove unneeded cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176776
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 9 Mar 2013 19:22:40 +0000 (19:22 +0000)]
Remove a source of nondeterminism from the LoopVectorizer.
This made us emit runtime checks in a random order. Hopefully bootstrap
miscompares will go away now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176775
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 9 Mar 2013 18:34:27 +0000 (18:34 +0000)]
Fix test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176773
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 9 Mar 2013 18:25:40 +0000 (18:25 +0000)]
Test case hygiene.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176772
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 9 Mar 2013 18:24:26 +0000 (18:24 +0000)]
Remove unneeded const_cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176771
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 9 Mar 2013 18:05:34 +0000 (18:05 +0000)]
Use forward declaration instead of #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176770
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Sat, 9 Mar 2013 16:27:27 +0000 (16:27 +0000)]
LoopVectorizer: Ignore all dbg intrinisic
Ignore all DbgIntriniscInfo instructions instead of just DbgValueInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176769
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Sat, 9 Mar 2013 15:56:34 +0000 (15:56 +0000)]
LoopVectorizer: Ignore dbg.value instructions
We want vectorization to happen at -g. Ignore calls to the dbg.value intrinsic
and don't transfer them to the vectorized code.
radar://
13378964
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176768
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 9 Mar 2013 13:48:23 +0000 (13:48 +0000)]
TLI: Microoptimize calls to strlen+memcmp to strncmp.
The strlen+memcmp was hidden in a call to StringRef::operator==. We check if
there are any null bytes in the string upfront so we can simplify the comparison
Small speedup when compiling code with many function calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176766
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 9 Mar 2013 11:18:59 +0000 (11:18 +0000)]
Simplify code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176765
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Mar 2013 10:13:26 +0000 (10:13 +0000)]
Use the correct index variable. This is the meat of what was supposed to be in
r176751. Also, learn a lesson about applying patches by hand/eyeball.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176764
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Mar 2013 09:32:16 +0000 (09:32 +0000)]
Commit the right files for r176762. Sigh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176763
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Mar 2013 09:31:44 +0000 (09:31 +0000)]
We need a shndx if the number of sections breaks SHN_LORESERVE. This condition
for choosing to emit a shndx was simply testing the wrong variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176762
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Mar 2013 02:06:37 +0000 (02:06 +0000)]
Fix bug introduced in r176616 when making function identifier numbers stable.
Count the subprograms, not the compile units.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176751
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Mar 2013 01:33:06 +0000 (01:33 +0000)]
Don't emit the extra checksum into the .gcda file if the user hasn't asked for
it. Fortunately, versions of gcov that predate the extra checksum also ignore
any extra data, so this isn't a problem. There will be a matching commit in
compiler-rt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176745
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Mar 2013 23:00:13 +0000 (23:00 +0000)]
Remove wrong and unnecessary assertion.
PHIs are allowed to have multiple operand pairs per predecessor, and
this code works just fine when it happens.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176734
91177308-0d34-0410-b5e6-
96231b3b80d8
Jan Wen Voung [Fri, 8 Mar 2013 22:56:31 +0000 (22:56 +0000)]
Disable statistics on Release builds and move tests that depend on -stats.
Summary:
Statistics are still available in Release+Asserts (any +Asserts builds),
and stats can also be turned on with LLVM_ENABLE_STATS.
Move some of the FastISel stats that were moved under DEBUG()
back out of DEBUG(), since stats are disabled across the board now.
Many tests depend on grepping "-stats" output. Move those into
a orig_dir/Stats/. so that they can be marked as unsupported
when building without statistics.
Differential Revision: http://llvm-reviews.chandlerc.com/D486
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176733
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Fri, 8 Mar 2013 22:29:44 +0000 (22:29 +0000)]
Clean up out-of-date comments and some stray whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176729
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Ilseman [Fri, 8 Mar 2013 21:15:00 +0000 (21:15 +0000)]
Early exit from getAllocationData() and isFreeCall() for intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176722
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Mar 2013 21:08:23 +0000 (21:08 +0000)]
Assert to bounds check MDNode::getOperand.
The getOperandPtr utility already bounds checks, but allows one-off-the-end.
This assert should catch the cases that could previously have been dereferencing
these one-off-the-end pointer. Happily, no cases of this came up with this
change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176721
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Ilseman [Fri, 8 Mar 2013 21:03:09 +0000 (21:03 +0000)]
Remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176720
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:36:36 +0000 (18:36 +0000)]
No really, don't use end().
Clearly, this function is never actually called with the last
instruction in the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176708
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Mar 2013 18:17:46 +0000 (18:17 +0000)]
Remove -print-dbginfo as it is unused & bitrotten.
This pass hasn't been touched in two years & would fail with assertions against
the current debug info metadata format (the only test case for it still uses a
many-versions old debug info metadata format)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176707
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:08:57 +0000 (18:08 +0000)]
Rewrite the physreg part of findLastUseBefore().
To find the last use of a register unit, start from the bottom and scan
upwards until a user is found.
<rdar://problem/
13353090>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176706
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Mar 2013 18:08:54 +0000 (18:08 +0000)]
Avoid creating a SlotIndex from the end() iterator.
No test case, spotted by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176705
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 8 Mar 2013 17:03:19 +0000 (17:03 +0000)]
Remove default from fully covered switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176703
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 8 Mar 2013 17:01:18 +0000 (17:01 +0000)]
Force cpu in test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176702
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 8 Mar 2013 16:58:37 +0000 (16:58 +0000)]
Insert the reduction start value into the first bypass block to preserve domination.
Fixes PR15344.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176701
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:37:11 +0000 (15:37 +0000)]
R600: Optimize another selectcc case
fold selectcc (selectcc x, y, a, b, cc), b, a, b, setne ->
selectcc x, y, a, b, cc
Reviewed-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176700
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:37:09 +0000 (15:37 +0000)]
R600: Improve custom lowering of select_cc
Two changes:
1. Prefer SET* instructions when possible
2. Handle the CND*_INT case with floating-point args
Reviewed-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176699
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:37:07 +0000 (15:37 +0000)]
R600: Change operation action from Custom to Expand for BR_CC
Reviewed-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176698
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:37:05 +0000 (15:37 +0000)]
R600: Change operation action from Custom to Expand for SETCC
Reviewed-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176697
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:37:03 +0000 (15:37 +0000)]
R600: Set BooleanContents to ZeroOrNegativeOneBooleanContent
Reviewed-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176696
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:37:02 +0000 (15:37 +0000)]
LegalizeDAG: Respect the result of TLI.getBooleanContents() when expanding SETCC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176695
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Fri, 8 Mar 2013 15:36:57 +0000 (15:36 +0000)]
DAGCombiner: Use correct value type for checking legality of BR_CC v3
LegalizeDAG.cpp uses the value of the comparison operands when checking
the legality of BR_CC, so DAGCombiner should do the same.
v2:
- Expand more BR_CC value types for NVPTX
v3:
- Expand correct BR_CC value types for Hexagon, Mips, and XCore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176694
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Fri, 8 Mar 2013 15:34:07 +0000 (15:34 +0000)]
R600: Change addresspace in fold-kcache.ll
AddressSpace definition has changed in a previous commit, reflect it
to avoid false failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176693
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 8 Mar 2013 15:27:30 +0000 (15:27 +0000)]
AArch64: specify full triple in test as only Linux works for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176692
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Fri, 8 Mar 2013 14:44:00 +0000 (14:44 +0000)]
R600/SI: adjust test to recent changes
Signed-off-by: Christian König <christian.koenig@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176691
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Fri, 8 Mar 2013 14:15:15 +0000 (14:15 +0000)]
Hexagon: Add patterns for zero extended loads from i1->i64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176689
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Fri, 8 Mar 2013 13:55:07 +0000 (13:55 +0000)]
AArch64: expand sincos operations, we don't support them.
Patch based on Mans Rullgard's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176688
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Fri, 8 Mar 2013 10:58:01 +0000 (10:58 +0000)]
R600/SI: Use source scheduler
This is certainly not the last word on scheduling for this target, but
right now this allows a few apps to run / finish with radeonsi, most
notably UT2004 / Lightsmark. They fail to compile some shaders with the
default scheduler because it ends up trying to spill registers, which
we don't support yet (and which is probably a bad idea in general for
performance if it can be avoided).
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176687
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 8 Mar 2013 05:40:34 +0000 (05:40 +0000)]
Add -verify-misched option.
This verifies live intervals both before and after scheduling. It's
useful for anyone hacking on live interval update.
Note that we don't yet pass verification all the time. We don't yet
handle updating nonallocatable live intervals perfectly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176685
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Mar 2013 02:27:40 +0000 (02:27 +0000)]
Another test fix for r176671.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176679
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Mar 2013 02:26:16 +0000 (02:26 +0000)]
Couple of test fixes for r176671.
Not sure why these aren't failing on my linux machine, but this should cover
it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176678
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 8 Mar 2013 02:21:08 +0000 (02:21 +0000)]
Revert r176154 in favor of a better approach.
Code generation makes some basic assumptions about the IR it's been given. In
particular, if there is only one 'invoke' in the function, then that invoke
won't be going away. However, with the advent of the `llvm.donothing' intrinsic,
those invokes may go away. If all of them go away, the landing pad no longer has
any users. This confuses the back-end, which asserts.
This happens with SjLj exceptions, because that's the model that modifies the IR
based on there being invokes, etc. in the function.
Remove any invokes of `llvm.donothing' during SjLj EH preparation. This will
give us a CFG that the back-end won't be confused about. If all of the invokes
in a function are removed, then the SjLj EH prepare pass won't insert the bogus
code the relies upon the invokes being there.
<rdar://problem/
13228754&
13316637>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176677
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Mar 2013 01:26:10 +0000 (01:26 +0000)]
remove an ancient and quaint bit of commented out makefile goo from when
GCC was the system compiler on the mac.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176675
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Mar 2013 00:23:31 +0000 (00:23 +0000)]
Upgrade tests to the latest debug info format.
Mostly this is just changing the named metadata (llvm.dbg.sp, llvm.dbg.gv,
llvm.dbg.<func>.lv, etc -> llvm.dbg.cu), adding a few fields to older records
(DIVariable: flags/inlined-at, DICompileUnit: sp/gv/types,
DISubprogram: local variables list)
The tests to update were discovered by a change I'm working on to remove debug
info version support - so any tests using old debug info versions I haven't
updated probably are bad tests or just not actually designed to test debug
info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176671
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 7 Mar 2013 23:55:51 +0000 (23:55 +0000)]
Add a getPassName() method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176669
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 7 Mar 2013 23:55:49 +0000 (23:55 +0000)]
Rename isEarlierInSameTrace to isUsefulDominator.
In very rare cases caused by irreducible control flow, the dominating
block can have the same trace head without actually being part of the
trace.
As long as such a dominator still has valid instruction depths, it is OK
to use it for computing instruction depths.
Rename the function to avoid lying, and add a check that instruction
depths are computed for the dominator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176668
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 22:20:06 +0000 (22:20 +0000)]
Keep coding stanard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176661
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 22:10:33 +0000 (22:10 +0000)]
Don't create IRBuilder if we can return from the method earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176660
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 7 Mar 2013 21:38:33 +0000 (21:38 +0000)]
[fast-isel] Seriously, add support for the expect intrinsic.
rdar://
13370942
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176659
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 7 Mar 2013 20:56:18 +0000 (20:56 +0000)]
Fix tautological compare. Not sure why this didn't trigger any test failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176652
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 7 Mar 2013 20:53:34 +0000 (20:53 +0000)]
Replace temporary vectors with arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176651
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 7 Mar 2013 20:42:17 +0000 (20:42 +0000)]
[fast-isel] Add support for the expect intrinsic.
rdar://
13370942
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176649
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 7 Mar 2013 20:33:29 +0000 (20:33 +0000)]
ArrayRefize some code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176648
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Thu, 7 Mar 2013 20:28:34 +0000 (20:28 +0000)]
Hexagon: Handle i8, i16 and i1 Var Args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176647
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 20:22:39 +0000 (20:22 +0000)]
Simplify code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176646
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 20:21:27 +0000 (20:21 +0000)]
Change Index type from unsigned long to unsigned. This should fix PR14980.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176645
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 20:04:17 +0000 (20:04 +0000)]
Remove trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176643
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 20:01:47 +0000 (20:01 +0000)]
Change NULL to 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176642
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 7 Mar 2013 20:01:19 +0000 (20:01 +0000)]
ArrayRef ca accept one element. Simplify code a little bit, also it matches now
coding in the other places of the file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176641
91177308-0d34-0410-b5e6-
96231b3b80d8