Commit Graph

86765 Commits

Author SHA1 Message Date
Duncan Sands
7ecfcc1639 Fix a crash observed by Shuxin Yang. The issue here is that LinearizeExprTree,
the utility for extracting a chain of operations from the IR, thought that it
might as well combine any constants it came across (rather than just returning
them along with everything else).  On the other hand, the factorization code
would like to see the individual constants (this is quite reasonable: it is
much easier to pull a factor of 3 out of 2*3 than it is to pull it out of 6;
you may think 6/3 isn't so hard, but due to overflow it's not as easy to undo
multiplications of constants as it may at first appear).  This patch therefore
makes LinearizeExprTree stupider: it now leaves optimizing to the optimization
part of reassociate, and sticks to just analysing the IR.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168035 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 09:58:38 +00:00
Craig Topper
116bd168e1 Revert changing FNEG of v4f32 to Expand. It's legal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168030 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 08:09:46 +00:00
Craig Topper
b916904e68 Make FNEG and FABS of v4f32 Expand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168029 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 08:06:12 +00:00
Craig Topper
44e394cf61 Make a bunch of floating point operations on vectors Expand so that instruction selection won't fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168028 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 08:02:19 +00:00
Craig Topper
f48ef5594f Add missing documentation for llvm.exp2, llvm.log10, and llvm.log2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168026 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 07:01:39 +00:00
Craig Topper
490104720d Add llvm.ceil, llvm.trunc, llvm.rint, llvm.nearbyint intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168025 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 06:51:10 +00:00
Andrew Trick
c6d6aeb95f Fix an obvious merge bug in -join-globalcopies (disabled).
Jakub Staszak spotted this in review. I don't notice these things
until I manually rerun benchmarks. But reducing unit tests is a very
high priority.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168021 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 02:32:22 +00:00
Eric Christopher
6b88e2a147 Add some release notes that say we removed the CellSPU port.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168014 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 00:59:52 +00:00
NAKAMURA Takumi
45fc0b65e2 InstCombineAndOrXor.cpp: Escape bracket in doxygen description. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168013 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 00:35:50 +00:00
Jakub Staszak
b61a11f7c0 Use LLVM_DELETED_FUNCTION.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168009 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 00:25:36 +00:00
Owen Anderson
40b6fdb81e Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's.
Patch by Pedro Artigas.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168008 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 00:14:15 +00:00
Jakub Staszak
3427f0aa7c Remove unneeded #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168006 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 23:58:57 +00:00
NAKAMURA Takumi
e8b0ae1fb6 NVPTXISelLowering.cpp: Fix warnings. [-Wunused-variable]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168001 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 23:46:15 +00:00
Bill Schmidt
527388dea5 This patch is in preparation for adding medium code model support to the
PPC64 target.  The five tests modified herein test code generation that is
sensitive to the code model selected.  So I've added -code-model=small to
the RUN commands for each.

Since small code model is the default, this has no effect for now; but this
prepares us for eventually changing the default to medium code model for PPC64.

Test changes verified with small and medium code model as default on
powerpc64-unknown-linux-gnu.  All tests continue to pass.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167999 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 23:23:27 +00:00
Sean Silva
791ebec45b docs: Improve typographical correctness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167998 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 23:15:51 +00:00
Sean Silva
d5f4b4ca0d docs: Sphinxify TestSuiteMakefileGuide
Some small related fixups to TestingGuide too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167996 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 23:11:10 +00:00
Jakub Staszak
8762a6bc2b Use reserve() to avoid vector reallocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167991 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 22:42:17 +00:00
Jakub Staszak
0e52f46e48 Make sure to not get AVX code on an AVX-capable host. Revealed in r167967.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167989 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 22:24:01 +00:00
NAKAMURA Takumi
d0a4a4bf5c test/CodeGen/Hexagon/postinc-load.ll: Suppress it for now. It triggered the failure on i686 hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167988 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 22:22:37 +00:00
Eric Christopher
1a35292b48 Few more small CellSPU removals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167987 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 22:13:56 +00:00
Eric Christopher
66ce3daf57 Fix CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167986 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 22:10:47 +00:00
Eric Christopher
06b423452c Remove the CellSPU port.
Approved by Chris Lattner.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167984 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 22:09:20 +00:00
Sean Silva
ac99eed043 docs: Sphinxify TestingGuide
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167979 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 21:09:30 +00:00
Alexander Kornienko
70a870add8 Support for [[@LINE]], [[@LINE+<offset>]], [[@LINE-<offset>]] expressions in
FileCheck.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167978 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 21:07:37 +00:00
Jakub Staszak
7454fc2e87 Fix invalid asserts, use llvm_unreachable instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167976 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 21:03:40 +00:00
NAKAMURA Takumi
9292136787 llvm/test/CodeGen/X86/memset.ll: FileCheck-ize, and add another case on +avx.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167975 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 21:01:40 +00:00
Jyotsna Verma
cb02fa9d7f Added multiclass for post-increment load instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167974 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:38:48 +00:00
Benjamin Kramer
7c6e8cd7cc Force CPU in test so we don't accidentally get AVX code on an AVX-capable host.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167973 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:31:42 +00:00
Jakub Staszak
39c71da6db canJoinPhys method doesn't modify CoalescerPair. Make it const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167972 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:31:04 +00:00
Alexander Kornienko
08639983de Added %(line), %(line+<number>), %(line-<number>) substitutions to lit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167971 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:26:19 +00:00
Chad Rosier
984639b7a4 Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167970 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:25:37 +00:00
Jakub Staszak
05ad7eb0c1 Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167969 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:21:29 +00:00
Jakub Staszak
de7c8530c8 Remove DOS line endings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167968 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:18:34 +00:00
Benjamin Kramer
2dbe929685 X86: Enable SSE memory intrinsics even when stack alignment is less than 16 bytes.
The stack realignment code was fixed to work when there is stack realignment and
a dynamic alloca is present so this shouldn't cause correctness issues anymore.

Note that this also enables generation of AVX instructions for memset
under the assumptions:
- Unaligned loads/stores are always fast on CPUs supporting AVX
- AVX is not slower than SSE
We may need some tweaked heuristics if one of those assumptions turns out not to
be true.

Effectively reverts r58317. Part of PR2962.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167967 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 20:08:40 +00:00
Hal Finkel
97d19ebe5b Replace std::vector -> SmallVector in BBVectorize
For now, this uses 8 on-stack elements. I'll need to do some profiling
to see if this is the best number.

Pointed out by Jakob in post-commit review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167966 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:53:27 +00:00
Nadav Rotem
c7d180257c Update my email address and update the code ownership
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167965 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:47:48 +00:00
Dmitri Gribenko
0fab191994 FileCheck.rst: change formatting of code-like constructs to use a monospaced
font.  These were formatted in bold, but that's not correct.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167964 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:42:32 +00:00
Nadav Rotem
50b66387e3 The code pattern "imm0_255_neg" is used for checking if an immediate value is a small negative number.
This patch changes the definition of negative from -0..-255 to -1..-255. I am changing this because of
a bug that we had in some of the patterns that assumed that "subs" of zero does not set the carry flag.

rdar://12028498



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167963 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:39:15 +00:00
Justin Holewinski
714a587115 Add myself as code owner for NVPTX target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167962 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:36:27 +00:00
Sean Silva
17e7b5c1e3 docs: nuke GCCFEBuildInstrs.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167961 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:34:48 +00:00
Justin Holewinski
a20067b5d4 [NVPTX] Implement custom lowering of loads/stores for i1
Loads from i1 become loads from i8 followed by trunc
Stores to i1 become zext to i8 followed by store to i8

Fixes PR13291

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167948 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:19:16 +00:00
Anton Korobeynikov
2337dd7c86 Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167947 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:17:44 +00:00
Anton Korobeynikov
062a6c8380 Fix really stupid ARM EHABI info generation bug: we should not emit
eh table and handler data if there are no landing pads in the function.
Patch by Logan Chien with some cleanups from me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167945 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 19:13:30 +00:00
Chad Rosier
2d80fb22b7 Claim ownership.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167943 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 18:43:21 +00:00
Hal Finkel
d7a3425f06 Fix the largest offender of determinism in BBVectorize
Iterating over the children of each node in the potential vectorization
plan must happen in a deterministic order (because it affects which children
are erased when two children conflict). There was no need for this data
structure to be a map in the first place, so replacing it with a vector
is a small change.

I believe that this was the last remaining instance if iterating over the
elements of a Dense* container where the iteration order could matter.
There are some remaining iterations over std::*map containers where the order
might matter, but so long as the Value* for instructions in a block increase
with the order of the instructions in the block (or decrease) monotonically,
then this will appear to be deterministic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167942 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 18:38:11 +00:00
Benjamin Kramer
6a7e85c198 Sort the code owner list alphabetically. Add myself as lib/DebugInfo owner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167940 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 18:17:45 +00:00
Jim Grosbach
3ca6382120 X86: Better diagnostics for 32-bit vs. 64-bit mode mismatches.
When an instruction as written requires 32-bit mode and we're assembling
in 64-bit mode, or vice-versa, issue a more specific diagnostic about
what's wrong.

rdar://12700702

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167937 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 18:04:47 +00:00
Matt Beaumont-Gay
7af4b9b33a s/assert/llvm_unreachable/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167936 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 17:58:11 +00:00
Eric Christopher
7c8e9602f4 Grab debug information for code ownership.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167933 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 17:33:40 +00:00
Alexey Samsonov
659c052dfb [TSan] fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167928 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 14:33:59 +00:00