Jakob Stoklund Olesen
b089483993
Use getNumOperands() instead of Operands.size().
...
The representation of the Operands array is going to change soon so it
can be allocated from a BumpPtrAllocator.
llvm-svn: 170988
2012-12-22 17:13:06 +00:00
Benjamin Kramer
76268ac682
X86: Turn mul of <4 x i32> into pmuludq when no SSE4.1 is available.
...
pmuludq is slow, but it turns out that all the unpacking and packing of the
scalarized mul is even slower. 10% speedup on loop-vectorized paq8p.
llvm-svn: 170985
2012-12-22 16:07:56 +00:00
Benjamin Kramer
b2f0a2bd4b
X86: Emit vector sext as shuffle + sra if vpmovsx is not available.
...
Also loosen the SSSE3 dependency a bit, expanded pshufb + psra is still better
than scalarized loads. Fixes PR14590.
llvm-svn: 170984
2012-12-22 11:34:28 +00:00
Craig Topper
fc5ee3516c
Add a comma to fix the build.
...
llvm-svn: 170982
2012-12-22 08:22:01 +00:00
Craig Topper
c9dcbe6987
Use a negative value to represent INVALID_SIMPLE_VALUE_TYPE instead of 256. Its much cheaper for the isSimple() checks to look for values less than 0 rather than a value greater than 255. This shaves ~8k off the size of the llc binary on x86-64.
...
llvm-svn: 170981
2012-12-22 08:16:17 +00:00
Craig Topper
8289b327ac
Add vAny and Metadata to the switch in getSizeInBits for consistency since every other enum was listed.
...
llvm-svn: 170977
2012-12-22 03:08:37 +00:00
Daniel Dunbar
fa40268fb7
[utils] Tweak utils/clang-parse-diagnostics-file to ignore autoconf diagnostics.
...
- Also, don't print headers if we aren't going to print any diagnostics.
llvm-svn: 170973
2012-12-22 00:47:06 +00:00
Bill Wendling
c79e42c5ce
Change 'AttrVal' to 'AttrKind' to better reflect that it's a kind of attribute instead of the value of the attribute.
...
llvm-svn: 170972
2012-12-22 00:37:52 +00:00
Richard Smith
2450f1c2c5
Fix some undefined behavior when parsing YAML input: don't try to compare an
...
uninitialized value against a default value. Found by -fsanitize=enum.
llvm-svn: 170970
2012-12-22 00:31:54 +00:00
Richard Smith
045e4f1365
Don't call back() on an empty SmallVector. Found by -fsanitize=enum!
...
llvm-svn: 170968
2012-12-22 00:15:13 +00:00
Nadav Rotem
d5aae980cb
In some cases, due to scheduling constraints we copy the EFLAGS.
...
The only way to read the eflags is using push and pop. If we don't
adjust the stack then we run over the first frame index. This is
not something that we want to do, so we have to make sure that
our machine function does not copy the flags. If it does then
we have to emit the prolog that adjusts the stack.
rdar://12896831
llvm-svn: 170961
2012-12-21 23:48:49 +00:00
Akira Hatanaka
6ac2fc4976
[mips] Refactor subword-swap, EXT/INS, load-effective-address and read-hardware
...
instructions.
llvm-svn: 170956
2012-12-21 23:21:32 +00:00
Akira Hatanaka
beea8a34c3
[mips] Refactor SYNC and multiply/divide instructions.
...
llvm-svn: 170955
2012-12-21 23:17:36 +00:00
Akira Hatanaka
31ddec5887
[mips] Refactor BAL instructions.
...
llvm-svn: 170954
2012-12-21 23:15:59 +00:00
Akira Hatanaka
d6b694f036
[mips] Fix encoding of BAL instruction. Also, fix assembler test case which
...
was not catching the error.
llvm-svn: 170953
2012-12-21 23:13:59 +00:00
Akira Hatanaka
a158042a56
[mips] Refactor jump, jump register, jump-and-link and nop instructions.
...
llvm-svn: 170952
2012-12-21 23:03:50 +00:00
Akira Hatanaka
e1826d7464
[mips] Refactor load/store left/right and load-link and store-conditional
...
instructions.
llvm-svn: 170950
2012-12-21 23:01:24 +00:00
Akira Hatanaka
d9bf8424e5
[mips] Refactor load/store instructions.
...
llvm-svn: 170948
2012-12-21 22:58:55 +00:00
Akira Hatanaka
b59b047fbe
[mips] Remove unnecessary isPseudo parameter.
...
llvm-svn: 170947
2012-12-21 22:57:26 +00:00
Akira Hatanaka
e738efc95b
[mips] Refactor LUI instruction.
...
llvm-svn: 170944
2012-12-21 22:46:07 +00:00
Akira Hatanaka
895e1cb2aa
[mips] Refactor count leading zero or one instructions.
...
llvm-svn: 170942
2012-12-21 22:43:58 +00:00
Akira Hatanaka
4f4c4aa05e
[mips] Refactor sign-extension-in-register instructions.
...
llvm-svn: 170940
2012-12-21 22:41:52 +00:00
Akira Hatanaka
b14c6e4e5f
[mips] Refactor instructions which copy from and to HI/LO registers.
...
llvm-svn: 170939
2012-12-21 22:39:17 +00:00
Akira Hatanaka
9e89195dce
[mips] Refactor logical NOR instructions.
...
llvm-svn: 170937
2012-12-21 22:35:47 +00:00
Akira Hatanaka
ac10697207
[mips] Move instruction definitions in MipsInstrInfo.td.
...
llvm-svn: 170936
2012-12-21 22:33:43 +00:00
Tom Stellard
09ef8425e9
R600: Coding style - remove empty spaces from the beginning of functions
...
No functionality change.
llvm-svn: 170923
2012-12-21 20:12:02 +00:00
Tom Stellard
41398026e7
R600: Fix MAX_UINT definition
...
Patch by: Vadim Girlin
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 170922
2012-12-21 20:12:01 +00:00
Tom Stellard
4fa7ac29f1
R600: Add SHADOWCUBE to TEX_SHADOW pattern
...
Patch by: Vadim Girlin
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
llvm-svn: 170921
2012-12-21 20:11:59 +00:00
Benjamin Kramer
5521b94b07
Cleanup compiler warnings on discarding type qualifiers in casts. Switch to C++ style casts.
...
Patch by Saleem Abdulrasool!
Differential Revision: http://llvm-reviews.chandlerc.com/D204
llvm-svn: 170917
2012-12-21 19:09:53 +00:00
Jakob Stoklund Olesen
0edb164723
Add a missing assertion, the null register has no register units.
...
llvm-svn: 170916
2012-12-21 18:38:09 +00:00
Benjamin Kramer
b4688f84bd
try to unbreak ppc buildbots.
...
llvm-svn: 170913
2012-12-21 18:11:45 +00:00
Benjamin Kramer
d0eb39232c
Teach sort_includes.py to drop duplicated includes.
...
llvm-svn: 170911
2012-12-21 18:00:08 +00:00
Benjamin Kramer
82d1c371e2
X86: Match pmin/pmax as a target specific dag combine. This occurs during vectorization.
...
Part of PR14667.
llvm-svn: 170908
2012-12-21 17:46:58 +00:00
Roman Divacky
a229186a82
Remove duplicate includes.
...
llvm-svn: 170902
2012-12-21 17:06:44 +00:00
Tom Stellard
a8b0351720
R600: Expand vec4 INT <-> FP conversions
...
llvm-svn: 170901
2012-12-21 16:33:24 +00:00
Benjamin Kramer
4669d18893
X86: Match the SSE/AVX min/max vector ops using a custom node instead of intrinsics
...
This is very mechanical, no functionality change. Preparation for PR14667.
llvm-svn: 170898
2012-12-21 14:04:55 +00:00
Duncan Sands
0ac8473db0
Test that a landingpad gets the name provided when it was created (see commit
...
170318).
llvm-svn: 170886
2012-12-21 12:03:03 +00:00
Evgeniy Stepanov
4fbc0d08bf
[msan] Remove unreachable blocks before instrumenting a function.
...
llvm-svn: 170883
2012-12-21 11:18:49 +00:00
Nadav Rotem
eacbb731d3
Add a missing "virtual" keyword.
...
llvm-svn: 170842
2012-12-21 05:02:12 +00:00
Nadav Rotem
3b850b70b3
Enable if-conversion.
...
llvm-svn: 170841
2012-12-21 04:47:54 +00:00
Quentin Colombet
b1b66e7a25
Add ARM cortex-r5 subtarget.
...
llvm-svn: 170840
2012-12-21 04:35:05 +00:00
Rafael Espindola
73bf9fa7ba
Don't skip __DWARF,
...
Now that we don't merge section and segment names, we don't need to skip the
segment name to get to the section name.
llvm-svn: 170839
2012-12-21 04:08:03 +00:00
Rafael Espindola
a9f810b6b5
Add a function to get the segment name of a section.
...
On MachO, sections also have segment names. When a tool looking at a .o file
prints a segment name, this is what they mean. In reality, a .o has only one
anonymous, segment.
This patch adds a MachO only function to fetch that segment name. I named it
getSectionFinalSegmentName since the main use for the name seems to be inform
the linker with segment this section should go to.
The patch also changes MachOObjectFile::getSectionName to return just the
section name instead of computing SegmentName,SectionName.
The main difference from the previous patch is that it doesn't use
InMemoryStruct. It is extremely dangerous: if the endians match it returns
a pointer to the file buffer, if not, it returns a pointer to an internal buffer
that is overwritten in the next API call.
We should change all of this code to use
support::detail::packed_endian_specific_integral like ELF, but since these
functions only handle strings, they work with big and little endian machines
as is.
I have tested this by installing ubuntu 12.10 ppc on qemu, that is why it took
so long :-)
llvm-svn: 170838
2012-12-21 03:47:03 +00:00
Evan Cheng
59421aee3d
Add targets to skip running the GC passes.
...
llvm-svn: 170836
2012-12-21 02:57:04 +00:00
Evan Cheng
99cafb1db2
Every pass deserves a name, even codegenprep.
...
llvm-svn: 170831
2012-12-21 01:48:14 +00:00
Nadav Rotem
6d4fdd6d2c
Improve the X86 cost model for loads and stores.
...
llvm-svn: 170830
2012-12-21 01:33:59 +00:00
Nadav Rotem
a4b53f20a3
BB-Vectorizer: Check the cost of the store pointer type
...
and not the return type, which is void. A number of test
cases fail after adding the assertion in TTImpl.
llvm-svn: 170828
2012-12-21 01:24:36 +00:00
Reed Kotler
93f778d2bd
Add test case for r170674
...
llvm-svn: 170823
2012-12-21 00:55:10 +00:00
Reed Kotler
9bff1ead0e
Call llvm_unreachable instead of assert.
...
llvm-svn: 170822
2012-12-21 00:44:59 +00:00
Sean Silva
850861df62
docs: More robust image scaling fix.
...
Hopefully these benchmarks will be updated in the future, so avoid
hardcoding image dimensions.
llvm-svn: 170819
2012-12-21 00:28:42 +00:00