OSDN Git Service
David Majnemer [Tue, 27 Aug 2013 21:56:17 +0000 (21:56 +0000)]
[ms-inline asm] Support offsets after segment registers
Summary: MASM let's you do stuff like 'MOV FS:20, EAX' and 'MOV EAX, FS:20'
Reviewers: craig.topper, rnk
Reviewed By: rnk
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1470
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189407
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Tue, 27 Aug 2013 20:23:19 +0000 (20:23 +0000)]
Given target assembler parsers a chance to handle variant expressions
first. Use this to turn the PPC modifiers into PPC specific expressions,
allowing them to work on constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189400
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Tue, 27 Aug 2013 19:45:28 +0000 (19:45 +0000)]
Changed comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189396
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Divacky [Tue, 27 Aug 2013 19:25:01 +0000 (19:25 +0000)]
Translate ENABLE_CLANG_{ARCMT,REWRITER,STATIC_ANALYZER} when generating
lit.site.cfg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189394
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Tue, 27 Aug 2013 18:52:47 +0000 (18:52 +0000)]
Refactor 'vectorizeLoop' no functionality change.
This patch merges LoopVectorize of InnerLoopVectorizer and InnerLoopUnroller by adding checks for VF=1. This helps in erasing the Unroller code that is almost identical to the InnerLoopVectorizer code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189391
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Tue, 27 Aug 2013 17:38:16 +0000 (17:38 +0000)]
[ARMv8] Add MC support for the new load/store acquire/release instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189388
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Tue, 27 Aug 2013 17:15:54 +0000 (17:15 +0000)]
Revert 189297, the original commit message is following.
----
Add new API lto_codegen_compile_parallel().
This API is proposed by Nick Kledzik. The semantic is:
--------------------------------------------------------------------------
Generate code for merged module into an array of native object files. On
success returns a pointer to an array of NativeObjectFile. The count
parameter returns the number of elements in the array. Each element is
a pointer/length for a generated mach-o/ELF buffer. The buffer is owned
by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called,
or lto_codegen_compile() is called again. On failure, returns NULL
(check lto_get_error_message() for details).
extern const struct NativeObjectFile*
lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
---------------------------------------------------------------------------
This API is currently only called on OSX platform. Linux or other Unixes
using GNU gold are not supposed to call this function, because on these systems,
object files are fed back to linker via disk file instead of memory buffer.
In this commit, lto_codegen_compile_parallel() simply calls
lto_codegen_compile() to return a single object file. In the near future,
this function is the entry point for compilation with partition. Linker can
blindly call this function even if partition is turned off; in this case,
compiler will return only one object file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189386
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Tue, 27 Aug 2013 13:54:04 +0000 (13:54 +0000)]
AVX-512: added conversion instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189349
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 27 Aug 2013 13:46:45 +0000 (13:46 +0000)]
DAGCombiner: make sure or/shl/srl really has zero high bits before forming bswap
We want to convert code like (or (srl N, 8), (shl N, 8)) into (srl (bswap N),
const), but this is only valid if the bits above 16 on the source pattern are
0, the checks we were doing on this were slightly wrong before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189348
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Tue, 27 Aug 2013 11:24:16 +0000 (11:24 +0000)]
[ARMv8] Add some negative tests for the recent VFP/NEON instructions.
Fix two issues I found while writing these tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189341
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Tue, 27 Aug 2013 11:20:13 +0000 (11:20 +0000)]
Add an assertion to the fixed-size allocator to ensure that we don't request
an allocation that is greater than what we will actually allocate.
Patch by Artyom Skrobov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189340
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 27 Aug 2013 10:31:36 +0000 (10:31 +0000)]
ARM: add natural patterns for vaddhl and vsubhl.
These instructions aren't particularly complicated and it's well worth having
patterns for some reasonably useful LLVM IR that will match them. Soon we
should be able to switch Clang over to producing this natural version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189335
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Tue, 27 Aug 2013 10:28:26 +0000 (10:28 +0000)]
R600/SI: Enable local-memory-two-objects lit test
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189334
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 27 Aug 2013 10:16:17 +0000 (10:16 +0000)]
[mips][msa] Added tests for and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v when non-byte vectors are used.
Note that all of these tests use ld.b and st.b for the loads and stores
regardless of the data size. This is because the definition of bitcast is
equivalent to a store/load sequence and DAG combiner accordingly folds bitcasts
to/from v16i8 into the load/store nodes to product load/store nodes with
type v16i8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189333
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 27 Aug 2013 10:04:21 +0000 (10:04 +0000)]
[mips][msa] Added spill/reload support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189332
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Tue, 27 Aug 2013 09:54:29 +0000 (09:54 +0000)]
[SystemZ] Extend memcpy and memset support to all constant lengths
Lengths up to a certain threshold (currently 6 * 256) use a series of MVCs.
Lengths above that threshold use a loop to handle X*256 bytes followed
by a single MVC to handle the excess (if any). This loop will also be
needed in future when support for variable lengths is added.
Because the same tablegen classes are used to define MVC and CLC,
the patch also has the side-effect of defining a pseudo loop instruction
for CLC. That instruction isn't used yet (and wouldn't be handled correctly
if it were). I'm planning to use it soon though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189331
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Tue, 27 Aug 2013 09:40:30 +0000 (09:40 +0000)]
[mips][msa] Added bitconverts for vector types for big and little-endian
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189330
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 27 Aug 2013 09:20:22 +0000 (09:20 +0000)]
Add support for DebugFission to DWARF parser
Summary:
1) Make llvm-symbolizer properly symbolize
files with split debug info (by using stanalone .dwo files).
2) Make DWARFCompileUnit parse and store corresponding .dwo file,
if necessary.
3) Make bits of DWARF parsing more CompileUnit-oriented.
Reviewers: echristo
Reviewed By: echristo
CC: bkramer, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1164
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189329
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Tue, 27 Aug 2013 08:39:25 +0000 (08:39 +0000)]
AVX-512: Added FMA instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189326
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Tue, 27 Aug 2013 06:49:46 +0000 (06:49 +0000)]
Fix the build issue under ia64. Close bug #5715
Thanks to Luca Falavigna for the help and most of the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189324
91177308-0d34-0410-b5e6-
96231b3b80d8
Charles Davis [Tue, 27 Aug 2013 05:38:30 +0000 (05:38 +0000)]
Revert "Fix the build broken by r189315." and "Move everything depending on Object/MachOFormat.h over to Support/MachO.h."
This reverts commits r189319 and r189315. r189315 broke some tests on what I
believe are big-endian platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189321
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Tue, 27 Aug 2013 05:16:07 +0000 (05:16 +0000)]
Fix the build broken by r189315.
(this triggered Clang's -Wsometimes-uninitialized on the default path
through the switch)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189319
91177308-0d34-0410-b5e6-
96231b3b80d8
Charles Davis [Tue, 27 Aug 2013 05:00:43 +0000 (05:00 +0000)]
Move everything depending on Object/MachOFormat.h over to Support/MachO.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189315
91177308-0d34-0410-b5e6-
96231b3b80d8
Charles Davis [Tue, 27 Aug 2013 05:00:13 +0000 (05:00 +0000)]
Support/MachO: Add a bunch of defines.
Right now we have two headers for the Mach-O format. I'd like to get rid
of one. Since the other object formats are all in Support, I chose to
keep the Mach-O header in Support, and discard the other one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189314
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Tue, 27 Aug 2013 04:43:03 +0000 (04:43 +0000)]
Fixed typo.
Noticed by Stephen Checkoway <s@pahtak.org>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189312
91177308-0d34-0410-b5e6-
96231b3b80d8
Kai Nacke [Tue, 27 Aug 2013 04:16:16 +0000 (04:16 +0000)]
Fix wrong code offset for unwind code SET_FPREG.
The code offset for unwind code SET_FPREG is wrong because it is set
to constant 0. The fix is to do the same as for the other unwind
codes: emit a label and later the absolute difference between the
label and the begin of the prologue.
Also enables the failing test case MC/COFF/seh.s
Reviewed by Jim Grosbach, Charles Davis and Nico Rieck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189309
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 27 Aug 2013 00:46:28 +0000 (00:46 +0000)]
Add derived from source.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189301
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 27 Aug 2013 00:36:19 +0000 (00:36 +0000)]
Add a testcase to ensure that the pubnames section uses an offset
off of the debug_info section even when split dwarf is enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189300
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 27 Aug 2013 00:28:23 +0000 (00:28 +0000)]
Remove an over-zealous assertion. A pointer type could be illegal if the target is prepared to custom-legalize pointer operands. This assertion was evaluated before the target would have a chance to do so, making it impossible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189299
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Tue, 27 Aug 2013 00:03:23 +0000 (00:03 +0000)]
Add new API lto_codegen_compile_parallel().
This API is proposed by Nick Kledzik. The semantic is:
--------------------------------------------------------------------------
Generate code for merged module into an array of native object files. On
success returns a pointer to an array of NativeObjectFile. The count
parameter returns the number of elements in the array. Each element is
a pointer/length for a generated mach-o/ELF buffer. The buffer is owned
by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called,
or lto_codegen_compile() is called again. On failure, returns NULL
(check lto_get_error_message() for details).
extern const struct NativeObjectFile*
lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
---------------------------------------------------------------------------
This API is currently only called on OSX platform. Linux or other Unixes
using GNU gold are not supposed to call this function, because on these systems,
object files are fed back to linker via disk file instead of memory buffer.
In this commit, lto_codegen_compile_parallel() simply calls
lto_codegen_compile() to return a single object file. In the near future,
this function is the entry point for compilation with partition. Linker can
blindly call this function even if partition is turned off; in this case,
compiler will return only one object file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189297
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:58:22 +0000 (23:58 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189296
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:57:03 +0000 (23:57 +0000)]
Make the lifetime of the DICompileUnit we're constructing from the
MDNode more clear as just for a single argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189294
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:50:43 +0000 (23:50 +0000)]
Have the skeleton compile unit construction method take the CU it
is constructing from as an input and keep the same unique identifier.
We can use this to connect items which must stay in the .o file
(e.g. pubnames and pubtypes) to the skeleton cu rather than having
duplicate unique numbers for the sections and needing to do lookups
based on MDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189293
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:50:40 +0000 (23:50 +0000)]
Remove duplicate set of CompilationDir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189292
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:50:38 +0000 (23:50 +0000)]
Remove the language parameter and variable from the compile unit. We
can get it via the MDNode that's passed in. Save that instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189291
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 26 Aug 2013 23:29:33 +0000 (23:29 +0000)]
Fix lint assert on integer vector division
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189290
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:24:35 +0000 (23:24 +0000)]
Treat the pubtypes section similarly to the pubnames section and emit
it by default under linux or when we're trying to keep compatibility
with old gdb versions.
Fix testcase for option name change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189289
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 23:24:31 +0000 (23:24 +0000)]
Only emit the section sym if we're emitting the section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189288
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 26 Aug 2013 23:08:37 +0000 (23:08 +0000)]
Fix inserting instructions before last in bundle.
The builder inserts from before the insert point,
not after, so this would insert before the last
instruction in the bundle instead of after it.
I'm not sure if this can actually be a problem
with any of the current insertions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189285
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 26 Aug 2013 22:39:55 +0000 (22:39 +0000)]
Debug Info: add an identifier field to DICompositeType.
DICompositeType will have an identifier field at position 14. For now, the
field is set to null in DIBuilder.
For DICompositeTypes where the template argument field (the 13th field)
was optional, modify DIBuilder to make sure the template argument field is set.
Now DICompositeType has 15 fields.
Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode.
Update verifier to check that DICompositeType has 15 fields and the last
field is null or a MDString.
Update testing cases to include an extra field for DICompositeType.
The identifier field will be used by type uniquing so a front end can
genearte a DICompositeType with a unique identifer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189282
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 26 Aug 2013 22:33:26 +0000 (22:33 +0000)]
LoopVectorize: Implement partial loop unrolling when vectorization is not profitable.
This patch enables unrolling of loops when vectorization is legal but not profitable.
We add a new class InnerLoopUnroller, that extends InnerLoopVectorizer and replaces some of the vector-specific logic with scalars.
This patch does not introduce any runtime regressions and improves the following workloads:
SingleSource/Benchmarks/Shootout/matrix -22.64%
SingleSource/Benchmarks/Shootout-C++/matrix -13.06%
External/SPEC/CINT2006/464_h264ref/464_h264ref -3.99%
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding -1.95%
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189281
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 26 Aug 2013 20:58:35 +0000 (20:58 +0000)]
Fix thinko.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189279
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 26 Aug 2013 20:22:08 +0000 (20:22 +0000)]
ARM: Enable machine verifier for a few more tests.
Now that fast-isel is in better shape, we can enable the machine
verifier for these tests, too.
rdar://
12594152
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189275
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 26 Aug 2013 20:22:05 +0000 (20:22 +0000)]
ARM: Constrain regclass for TSTri instruction.
Get the register class right for the TST instruction. This keeps the
machine verifier happy, enabling us to turn it on for another test.
rdar://
12594152
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189274
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Mon, 26 Aug 2013 20:11:46 +0000 (20:11 +0000)]
Dummy code to silence warning from
4189266
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189272
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 26 Aug 2013 20:07:29 +0000 (20:07 +0000)]
ARM: FastISel verifier error cleanup.
Constant pool and global value reference instructions need more
restricted register classes than plain GPR.
rdar://
12594152
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189270
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 26 Aug 2013 20:07:25 +0000 (20:07 +0000)]
ARM: Fix ELF global base reg intialization.
The create machine code wasn't properly in SSA, which the machine verifier
properly complains about. Now that fast-isel is closer to verifier clean,
errors like this show up more clearly.
Additionally, the Thumb pseudo tPICADD was used for both ARM and Thumb
mode functions, which is obviously wrong. Fix that along the way.
Test case is part of the following commit which will finish making an
additional fast-isel test verifier clean an enable it for the
regression test suite. This commit is separate since its not just
a verifier cleanup, but an actual correctness issue.
rdar://
12594152 (for the fast-isel verifier aspects)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189269
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Mon, 26 Aug 2013 19:42:51 +0000 (19:42 +0000)]
[PowerPC] More fast-isel chunks (returns and integer extends)
Incremental improvement to fast-isel for PPC64. This allows us to
select on ret, sext, and zext. Filling in sext/zext improves some of
the existing logic in handling compare-immediates that needed extends.
A simplified return convention for fast-isel is also added to the
PPC64 calling conventions. All call/return processing for DAG
selection is handled with custom code, so there isn't an existing CC
to rely on here. The include of PPCGenCallingConv.inc causes compiler
warnings due to the 32-bit calling conventions that are not used, so
the dummy function "usePPC32CCs()" is added here to silence those.
Test cases for the return and extend logic are added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189266
91177308-0d34-0410-b5e6-
96231b3b80d8
Yi Jiang [Mon, 26 Aug 2013 18:57:55 +0000 (18:57 +0000)]
test commit. Remove blank line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189265
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 26 Aug 2013 18:38:29 +0000 (18:38 +0000)]
Fix unused variable in release build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189264
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 26 Aug 2013 18:12:03 +0000 (18:12 +0000)]
llvm-symbolizer: use real path when looking for debug binary location
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189250
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 26 Aug 2013 18:11:25 +0000 (18:11 +0000)]
[cmake] Check for realpath availability in CMake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189249
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 26 Aug 2013 18:08:35 +0000 (18:08 +0000)]
Forgot to add slp threshold to test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189248
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 26 Aug 2013 17:56:38 +0000 (17:56 +0000)]
Constify functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189234
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 26 Aug 2013 17:56:35 +0000 (17:56 +0000)]
Vectorize starting from insertelements building a vector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189233
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 26 Aug 2013 16:54:12 +0000 (16:54 +0000)]
CMake: move lto.h install to tools/lto/CMakeLists.txt
It looked misplaced in the main CMakeLists.txt file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189230
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:06:10 +0000 (15:06 +0000)]
SelectionDAG: Remove unnecessary uses of TargetLowering::getPointerTy()
If we have a binary operation like ISD:ADD, we can set the result type
equal to the result type of one of its operands rather than using
TargetLowering::getPointerTy().
Also, any use of DAG.getIntPtrConstant(C) as an operand for a binary
operation can be replaced with:
DAG.getConstant(C, OtherOperand.getValueType());
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189227
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:06:04 +0000 (15:06 +0000)]
R600: Add support for vector local memory loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189226
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:05:59 +0000 (15:05 +0000)]
R600: Add support for i8 and i16 local memory loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189225
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:05:55 +0000 (15:05 +0000)]
SelectionDAG: Use correct pointer size when splitting vector stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189224
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:05:49 +0000 (15:05 +0000)]
R600: Add support for i8 and i16 local memory stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189223
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:05:44 +0000 (15:05 +0000)]
R600: Add support for v4i32 and v2i32 local stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189222
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 26 Aug 2013 15:05:36 +0000 (15:05 +0000)]
SelectionDAG: Use correct pointer size when lowering function arguments v2
This adds minimal support to the SelectionDAG for handling address spaces
with different pointer sizes. The SelectionDAG should now correctly
lower pointer function arguments to the correct size as well as generate
the correct code when lowering getelementptr.
This patch also updates the R600 DataLayout to use 32-bit pointers for
the local address space.
v2:
- Add more helper functions to TargetLoweringBase
- Use CHECK-LABEL for tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189221
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 26 Aug 2013 14:43:19 +0000 (14:43 +0000)]
CMake Xcode builds: symlink tblgen targets out to bin/.
Xcode always puts executable targets in the directory
bin/<Config>. When building separate LLVM and Clang projects for
Xcode, this prevents the CMake-configured project for Clang from
finding llvm-tblgen. Add a symlink so that tblgen executables are
always available in bin/ (regardless of the configuration LLVM is
built with).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189220
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Mon, 26 Aug 2013 12:45:35 +0000 (12:45 +0000)]
AVX-512: Added shuffle instructions -
VPSHUFD, VPERMILPS, VMOVDDUP, VMOVLHPS, VMOVHLPS, VSHUFPS, VALIGN
single and double forms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189215
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Mon, 26 Aug 2013 10:02:40 +0000 (10:02 +0000)]
This patch implements trap instructions for mips. The test cases are added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189213
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Mon, 26 Aug 2013 07:29:08 +0000 (07:29 +0000)]
Include a clearer policy about what's ok/nok to speed up code reviews.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189210
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 26 Aug 2013 00:39:04 +0000 (00:39 +0000)]
Make sure x86 instructions using ssmem/sdmem operand types are only able to parse memory operands of the proper size in Intel syntax. Primarily affects some of sse cvt instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189206
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 26 Aug 2013 00:13:09 +0000 (00:13 +0000)]
Remove some unnecessary PredicateMethod overrides. Add RenderMethod overrides to remove forwarding in the X86AsmParser code itself. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189205
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 25 Aug 2013 23:18:05 +0000 (23:18 +0000)]
Put some of the AVX-512 parsing stuff in a more consistent place with the existing functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189204
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Sun, 25 Aug 2013 22:33:42 +0000 (22:33 +0000)]
[PowerPC] Add fast-isel branch and compare selection.
First chunk of actual fast-isel selection code. This handles direct
and indirect branches, as well as feeding compares for direct
branches. PPCFastISel::PPCEmitIntExt() is just roughed in and will be
expanded in a future patch. This also corrects a problem with
selection for constant pool entries in JIT mode or with small code
model.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189202
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 25 Aug 2013 22:23:38 +0000 (22:23 +0000)]
First round of fixes for the x86 fixes for the x86 move accumulator from/to memory offset instructions.
-Assembly parser now properly check the size of the memory operation specified in intel syntax. So 'mov word ptr [5], al' is no longer accepted.
-x86-32 disassembly of these instructions no longer sign extends the 32-bit address immediate based on size.
-Intel syntax printing prints the ptr size and places brackets around the address immediate.
Known remaining issues with these instructions:
-Segment override prefix is not supported. PR16962 and PR16961.
-Immediate size should be changed by address size prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189201
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sun, 25 Aug 2013 19:48:46 +0000 (19:48 +0000)]
Fix #include guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189199
91177308-0d34-0410-b5e6-
96231b3b80d8
Venkatraman Govindaraju [Sun, 25 Aug 2013 18:30:06 +0000 (18:30 +0000)]
[Sparc] Add long double (f128) instructions to sparc backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189198
91177308-0d34-0410-b5e6-
96231b3b80d8
Venkatraman Govindaraju [Sun, 25 Aug 2013 17:03:02 +0000 (17:03 +0000)]
[Sparc] Added V9's extra floating point registers and their aliases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189195
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Sun, 25 Aug 2013 12:54:30 +0000 (12:54 +0000)]
AVX-512: added UNPACK instructions and tests for all-zero/all-ones vectors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189189
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 25 Aug 2013 10:46:39 +0000 (10:46 +0000)]
Fix a bug where we would corrupt the offset when evaluating
a non-constant GEP.
I don't have any test case that demonstrates this, Nadav (indirectly)
pointed this out in code review. I'm not sure how possible it is to
contrive a test case for the current users of this code that triggers
the bad issue sadly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189188
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 25 Aug 2013 09:18:19 +0000 (09:18 +0000)]
AsmPrinter: Get rid of llvm$workaround$fake$stub$
We currently emit labels with the prefix Lllvm$workaround$fake$stub$ if
the target's MCAsmInfo has getLinkOnceDirective() mapped to something
interesting. This was apparently a work around introduced in r31033 for
binutils that we don't need anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189187
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 25 Aug 2013 02:40:25 +0000 (02:40 +0000)]
Start to add the LLVM builtins to the mips16 exclusion lists for fp.
I need to add the rest of these to the list or else to delay putting
out the actual stub until later in code generation when I know if
the external function ever got emitted
Resubmit this patch. The target triple needs to be added to the test so that
clang does not tell the backend the wrong target when the host is BSD. There
is a clang bug in here somewhere that I need to track down. At Mips this
has been filed internally as a bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189186
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sat, 24 Aug 2013 20:35:16 +0000 (20:35 +0000)]
[Support] fix compile with -Werror
error: commas at the end of enumerator lists are a C++11 extension
[-Werror,-Wc++11-extensions]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189183
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 24 Aug 2013 20:31:14 +0000 (20:31 +0000)]
Add hasSideEffects/mayLoad/mayStore flags to the X86 moffs8/moffs16/moffs32/moffs64 versions of move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189182
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Sat, 24 Aug 2013 20:14:40 +0000 (20:14 +0000)]
[Support] add missing enumeration values
This adds additional missing Windows subsystem identifiers to the
IMAGE_SUBSYSTEM enumeration.
Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189180
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 24 Aug 2013 19:55:38 +0000 (19:55 +0000)]
Check if in set on insertion instead of separately
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189179
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 24 Aug 2013 19:50:11 +0000 (19:50 +0000)]
Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189178
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Sat, 24 Aug 2013 17:53:16 +0000 (17:53 +0000)]
Revert 189161
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189176
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 24 Aug 2013 14:16:00 +0000 (14:16 +0000)]
Remove trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189173
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 24 Aug 2013 12:54:27 +0000 (12:54 +0000)]
Add a function object to compare the first or second component of a std::pair.
Replace instances of this scattered around the code base.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189169
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 24 Aug 2013 12:15:54 +0000 (12:15 +0000)]
Simplify code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189168
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 24 Aug 2013 11:55:49 +0000 (11:55 +0000)]
DwarfDebug: Delete orphaned children.
Leak found by valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189167
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Sat, 24 Aug 2013 07:25:21 +0000 (07:25 +0000)]
[autotools->cmake] Enable generation of doxygen documentation via cmake.
I am going to add in a subsequent patch support for generating the llvm
manpage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189164
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Sat, 24 Aug 2013 01:50:41 +0000 (01:50 +0000)]
Added const qualifier to StringRef::edit_distance member function
Patch by Ismail Pazarbasi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189162
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sat, 24 Aug 2013 01:24:44 +0000 (01:24 +0000)]
Start to add the builtind to the mips16 exclusion lists for fp.
I need to add the rest of these to the list or else to delay putting
out the actual stub until later in code generation when I know if
the external function ever got emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189161
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Sat, 24 Aug 2013 01:17:23 +0000 (01:17 +0000)]
[NVPTX] Re-enable assembly printing support for inline assembly
This support was removed by accident during the MC conversion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189160
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Sat, 24 Aug 2013 00:32:12 +0000 (00:32 +0000)]
DebugInfoFinder: handle imported entities of a CU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189158
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Sat, 24 Aug 2013 00:20:36 +0000 (00:20 +0000)]
CMake: Add LLVM_INSTALL_TOOLCHAIN_ONLY option.
Differential Revision: http://llvm-reviews.chandlerc.com/D1428
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189155
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 23 Aug 2013 20:49:02 +0000 (20:49 +0000)]
Update test to use rdrnd instead of rdrand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189146
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 23 Aug 2013 20:46:35 +0000 (20:46 +0000)]
Update tests to use sse4.2 instead of sse42.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189145
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 23 Aug 2013 20:39:19 +0000 (20:39 +0000)]
Replace more uses of sse41 with sse4.1.
llc using the host cpu features and *waning* on unknown features is probably
not a good thing :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189144
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 23 Aug 2013 20:27:02 +0000 (20:27 +0000)]
Update a test that I missed in the previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189143
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 23 Aug 2013 20:21:34 +0000 (20:21 +0000)]
Rename features to match what gcc and clang use.
There is no advantage in being different and using the same names simplifies
clang a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189141
91177308-0d34-0410-b5e6-
96231b3b80d8