Daniel Dunbar [Wed, 14 Aug 2013 05:07:01 +0000 (05:07 +0000)]
[lit] Move executeCommand() into lit.util.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188356
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Aug 2013 05:06:55 +0000 (05:06 +0000)]
[lit] Move formats into their own subpackage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188355
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 14 Aug 2013 03:34:49 +0000 (03:34 +0000)]
[CMake] add_llvm_library: Specify explicit suffix .imp to import library to avoid a warning between profile_rt-static and profile_rt-shared with lib/profile_rt.lib.
FIXME: It seems MS version of profile_rt.dll doesn't contain any export symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188351
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 14 Aug 2013 02:26:31 +0000 (02:26 +0000)]
Lit: Introduce "%/[STpst] into parseIntegratedTestScript(), to normalize substitutions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188348
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 14 Aug 2013 01:15:52 +0000 (01:15 +0000)]
[mips] Fix bug in parsing accumulator registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188344
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 14 Aug 2013 01:02:20 +0000 (01:02 +0000)]
[mips] Use register operands instead of register classes in DSP instruction
definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188343
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 14 Aug 2013 00:53:38 +0000 (00:53 +0000)]
[mips] Rename DSPRegs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188342
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 14 Aug 2013 00:47:08 +0000 (00:47 +0000)]
[mips] Rename HIRegs and LORegs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188341
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 14 Aug 2013 00:46:00 +0000 (00:46 +0000)]
llvm/test/CodeGen/X86/setcc-sentinals.ll: Relax expressions for x86_64-win32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188340
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 14 Aug 2013 00:24:38 +0000 (00:24 +0000)]
Fix always creating GEP with i32 indices
Use the pointer size if datalayout is available.
Use i64 if it's not, which is consistent with what other
places do when the pointer size is unknown.
The test doesn't really test this in a useful way
since it will be transformed to that later anyway,
but this now tests it for non-zero arrays and when
datalayout isn't available. The cases in
visitGetElementPtrInst should save an extra re-visit to
the newly created GEP since it won't need to cleanup after
itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188339
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 14 Aug 2013 00:24:34 +0000 (00:24 +0000)]
Use type helper functions instead of cast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188338
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 14 Aug 2013 00:24:05 +0000 (00:24 +0000)]
Use array initializer, space around operator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188337
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 14 Aug 2013 00:21:25 +0000 (00:21 +0000)]
[mips] Properly parse registers that appear in inline-asm constraints.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188336
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Tue, 13 Aug 2013 23:34:32 +0000 (23:34 +0000)]
BBVectorize: Add initial stores to the write set when tracking uses
When computing the use set of a store, we need to add the store to the write
set prior to iterating over later instructions. Otherwise, if there is a later
aliasing load of that store, that load will not be tagged as a use, and bad
things will happen.
trackUsesOfI still adds later dependent stores of an instruction to that
instruction's write set, but it never sees the original instruction, and so
when tracking uses of a store, the store must be added to the write set by the
caller.
Fixes PR16834.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188329
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 13 Aug 2013 22:55:05 +0000 (22:55 +0000)]
Remove duplicate copy of testcase in r188327.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188328
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 13 Aug 2013 22:51:58 +0000 (22:51 +0000)]
Revert r187191, which broke opt -mem2reg on the testcases included in PR16867.
However, opt -O2 doesn't run mem2reg directly so nobody noticed until r188146
when SROA started sending more things directly down the PromoteMemToReg path.
In order to revert r187191, I also revert dependent revisions r187296, r187322
and r188146. Fixes PR16867. Does not add the testcases from that PR, but both
of them should get added for both mem2reg and sroa when this revert gets
unreverted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188327
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Tue, 13 Aug 2013 22:34:26 +0000 (22:34 +0000)]
[Mips][msa] Value types for MSA support.
Added v8f16 to ValueTypes.h, ValueTypes.cpp, ValueTypes.td,
and CodeGenTarget.cpp
Patch by Daniel Sanders
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188326
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 13 Aug 2013 22:23:05 +0000 (22:23 +0000)]
Options: explicit handling of --
Clients of the option parsing library should handle it explicitly
using a KIND_REMAINING_ARGS option.
Clang and lld have been updated in r188316 and r188318, respectively.
Also fix -Wsign-compare warning in the option parsing test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188323
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 13 Aug 2013 21:30:58 +0000 (21:30 +0000)]
DAG: Combine (and (setne X, 0), (setne X, -1)) -> (setuge (add X, 1), 2)
A common idiom is to use zero and all-ones as sentinal values and to
check for both in a single conditional ("x != 0 && x != (unsigned)-1").
That generates code, for i32, like:
testl %edi, %edi
setne %al
cmpl $-1, %edi
setne %cl
andb %al, %cl
With this transform, we generate the simpler:
incl %edi
cmpl $1, %edi
seta %al
Similar improvements for other integer sizes and on other platforms. In
general, combining the two setcc instructions into one is better.
rdar://
14689217
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188315
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 13 Aug 2013 21:09:50 +0000 (21:09 +0000)]
Options: Add new option kind that consumes remaining arguments
This adds KIND_REMAINING_ARGS, a class of options that consume
all remaining arguments on the command line.
This will be used to support /link in clang-cl, which is used
to forward all remaining arguments to the linker.
It also allows us to remove the hard-coded handling of "--",
allowing clients (clang and lld) to implement that functionality
themselves with this new option class.
Differential Revision: http://llvm-reviews.chandlerc.com/D1387
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188314
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Tue, 13 Aug 2013 20:54:07 +0000 (20:54 +0000)]
[Mips][msa] Added initial MSA support.
* msa SubtargetFeature
* registers
* ld.[bhwd], and st.[bhwd] instructions
Does not correctly prohibit use of both 32-bit FPU registers and MSA together.
Patch by Daniel Sanders
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188313
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Tue, 13 Aug 2013 20:19:16 +0000 (20:19 +0000)]
[Mips] Support for unaligned load/store microMips instructions
This includes instructions lwl, lwr, swl and swr.
Patch by Zoran Jovnovic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188312
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Aug 2013 19:08:48 +0000 (19:08 +0000)]
[lit] Support use of setup.py from other directories.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188309
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Tue, 13 Aug 2013 17:54:56 +0000 (17:54 +0000)]
Update makeLibCall to return both the call and the chain associated with the libcall instead of just the call. This allows us to specify libcalls that return void.
LowerCallTo returns a pair with the return value of the call as the first
element and the chain associated with the return value as the second element. If
we lower a call that has a void return value, LowerCallTo returns an SDValue
with a NULL SDNode and the chain for the call. Thus makeLibCall by just
returning the first value makes it impossible for you to set up the chain so
that the call is not eliminated as dead code.
I also updated all references to makeLibCall to reflect the new return type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188300
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Tue, 13 Aug 2013 17:46:57 +0000 (17:46 +0000)]
Output DW_AT_stmt_list dwarf debug info as DW_FORM_sec_offset instead of DW_FORM_data4 as it is a section offset (fixes the coff/dwarf debug info statement locations)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188297
91177308-0d34-0410-b5e6-
96231b3b80d8
Carlo Kok [Tue, 13 Aug 2013 17:45:53 +0000 (17:45 +0000)]
For COFF only: dwarf debug info output a label reference as a section relative item only when it's one of dw_from strp, sec_offset, ref_addr or op_call_ref instead of going by size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188296
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Vyukov [Tue, 13 Aug 2013 16:52:41 +0000 (16:52 +0000)]
dfsan: fix lint warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188293
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Tue, 13 Aug 2013 16:40:47 +0000 (16:40 +0000)]
ARMv8: SWP and SWPB are obsoleted on ARMv8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188288
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 13 Aug 2013 16:12:04 +0000 (16:12 +0000)]
Also remove logic in LateVectorize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188285
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 13 Aug 2013 15:51:25 +0000 (15:51 +0000)]
Remove logic that decides whether to vectorize or not depending on O-levels
I have moved this logic into clang and opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188281
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Tue, 13 Aug 2013 14:04:20 +0000 (14:04 +0000)]
Fix compiler warnings.
../lib/Target/X86/X86ISelLowering.cpp:9715:7: error: unused variable 'OpVT' [-Werror,-Wunused-variable]
EVT OpVT = Op0.getValueType();
^
../lib/Target/X86/X86ISelLowering.cpp:9763:14: error: unused variable 'NumElems' [-Werror,-Wunused-variable]
unsigned NumElems = VT.getVectorNumElements();
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188269
91177308-0d34-0410-b5e6-
96231b3b80d8
Mihai Popa [Tue, 13 Aug 2013 14:02:13 +0000 (14:02 +0000)]
Fix signed overflow in when computing encodings for ADR instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188268
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Tue, 13 Aug 2013 13:24:07 +0000 (13:24 +0000)]
AVX-512: Added CMP and BLEND instructions.
Lowering for SETCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188265
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Tue, 13 Aug 2013 13:07:09 +0000 (13:07 +0000)]
This patch introduces changes to MipsAsmParser register parsing routines. The code now follows more deterministic path and makes the code more efficient and easier to maintain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188264
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 13 Aug 2013 09:57:55 +0000 (09:57 +0000)]
GCC warns about removing const with a c-style cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188259
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Tue, 13 Aug 2013 07:57:01 +0000 (07:57 +0000)]
Pass DIEHash::collectAttributes output argument by-pointer instead of by-value.
Before this, collectAttributes() was operating on a local object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188254
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 13 Aug 2013 01:23:53 +0000 (01:23 +0000)]
[-cxx-abi microsoft] Stick zero initialized symbols into the .bss section for COFF
Summary:
We need to do two things:
- Initialize BSSSection in MCObjectFileInfo::InitCOFFMCObjectFileInfo
- Teach TargetLoweringObjectFileCOFF::SelectSectionForGlobal what to do
with it
This fixes PR16861.
Reviewers: rnk
Reviewed By: rnk
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1361
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188244
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 13 Aug 2013 01:21:55 +0000 (01:21 +0000)]
Add the start of DIE hashing for DWARF4 type units and split dwarf
CUs.
Currently only hashes the name of CUs and the names of any children,
but it's an obvious first step to show the framework. The testcase
should continue to be correct, however, as it's an empty TU.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188243
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 13 Aug 2013 00:03:47 +0000 (00:03 +0000)]
Fix an oversight in isPotentiallyReachable where we wouldn't do any CFG-walking
to find loops if the From and To instructions were in the same block.
Refactor the code a little now that we need to fill to start the CFG-walking
algorithm with more than one starting basic block sometimes.
Special thanks to Andrew Trick for catching an error in my understanding of
natural loops in code review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188236
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 12 Aug 2013 23:59:26 +0000 (23:59 +0000)]
Add comment and source to testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188234
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 12 Aug 2013 23:59:24 +0000 (23:59 +0000)]
Reflow comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188233
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 12 Aug 2013 23:59:18 +0000 (23:59 +0000)]
Remove empty constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188232
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 12 Aug 2013 23:15:58 +0000 (23:15 +0000)]
Slightly simplify code with helper functions
e.g. Use Ty->getPointerElementType()
instead of cast<PointerType>(Ty)->getElementType()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188223
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Mon, 12 Aug 2013 23:05:59 +0000 (23:05 +0000)]
[FileCheck] Fix a bug that cause FileCheck to misidentify check-prefix
FileCheck should check to make sure the prefix was found, and not a word
containing it (e.g -check-prefix=BASEREL shouldn't match NOBASEREL).
Patch by Ron Ofir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188221
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 12 Aug 2013 22:59:14 +0000 (22:59 +0000)]
[Object/ELF] sh_type is not a bitfield. Fixes RuntimeDyld test failure on ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188220
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 12 Aug 2013 22:56:15 +0000 (22:56 +0000)]
Add some braces, and spaces around operators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188219
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 12 Aug 2013 22:45:44 +0000 (22:45 +0000)]
Fix a crash with X86 Mach-O and a subtraction expression where both symbols are
undefined and produce an error message instead as this is a non-relocatable
expression with X86 Mach-O.
rdar://
8920876
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188218
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Mon, 12 Aug 2013 22:38:43 +0000 (22:38 +0000)]
Reapply r188119 now that the bug it exposed is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188217
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Mon, 12 Aug 2013 22:38:39 +0000 (22:38 +0000)]
DataFlowSanitizer: fix a use-after-free. Spotted by libgmalloc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188216
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Mon, 12 Aug 2013 22:33:21 +0000 (22:33 +0000)]
R600: Set scheduling preference to Sched::Source
R600 doesn't need to do any scheduling on the SelectionDAG now that it
has a very good MachineScheduler. Also, using the VLIW SelectionDAG
scheduler was having a major impact on compile times. For example with
the phatk kernel here are the LLVM IR to machine code compile times:
With Sched::VLIW
Total Compile Time: 1.4890 Seconds (User + System)
SelectionDAG Instruction Scheduling: 1.1670 Seconds (User + System)
With Sched::Source
Total Compile Time: 0.3330 Seconds (User + System)
SelectionDAG Instruction Scheduling: 0.0070 Seconds (User + System)
The code ouput was identical with both schedulers. This may not be true
for all programs, but it gives me confidence that there won't be much
reduction, if any, in code quality by using Sched::Source.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188215
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 21:10:23 +0000 (21:10 +0000)]
Add editor C++ filetype declaration no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188205
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Mon, 12 Aug 2013 21:07:31 +0000 (21:07 +0000)]
Revert r188188 and r188200.
In order to appease people (in Apple) who accuse me for committing "huge change" (?) without proper review.
Thank Eric for fixing a compile-warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188204
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 21:02:02 +0000 (21:02 +0000)]
Fixed SelectionDAGBuilder.h C++ filetype declaration to use the canonical C++ instead of c++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188203
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 20:52:06 +0000 (20:52 +0000)]
Fixed another place in CodeGen where we had a typo in our editor C++ filetype declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188202
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 20:49:27 +0000 (20:49 +0000)]
[branchfolding] Fix typo in C++ editor declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188201
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 12 Aug 2013 20:27:50 +0000 (20:27 +0000)]
Fix warning about unused member.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188200
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 12 Aug 2013 20:27:48 +0000 (20:27 +0000)]
Move the addition of the dwo_id as late as possible after everything
has been finalized except for sizes and offsets. Update test accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188199
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 12 Aug 2013 20:09:37 +0000 (20:09 +0000)]
Move stack protector names to the same place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188198
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 19:44:09 +0000 (19:44 +0000)]
[stack protector] Fixed typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188195
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 18:45:38 +0000 (18:45 +0000)]
[stackprotector] Add in the stackprotector libcall.
We support this libcall on all platforms except for OpenBSD (See
lib/Codegen/StackProtector.cpp).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188193
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 12 Aug 2013 18:35:32 +0000 (18:35 +0000)]
[stackprotector] Added intrinsic llvm.stackprotectorcheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188191
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Mon, 12 Aug 2013 18:29:43 +0000 (18:29 +0000)]
Misc enhancements to LTO:
1. Add some helper classes for partitions. They are designed in a
way such that the top-level LTO driver will not see much difference
with or without partitioning.
2. Introduce work-dir. Now all intermediate files generated during
LTO phases will be saved under work-dir. User can specify the workdir
via -lto-workdir=/path/to/dir. By default the work-dir will be
erased before linker exit. To keep the workdir, do -lto-keep, or -lto-keep=1.
TODO: Erase the workdir, if the linker exit prematurely.
We are currently not able to remove directory on signal. The support
routines simply ignore directory.
3. Add one new API lto_codegen_get_files_need_remove().
Linker and LTO plugin will communicate via this API about which files
(including directories) need to removed before linker exit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188188
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 12 Aug 2013 17:46:44 +0000 (17:46 +0000)]
Fix PR16797 - Support PHINodes with multiple inputs from the same basic block.
Do not generate new vector values for the same entries because we know that the incoming values
from the same block must be identical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188185
91177308-0d34-0410-b5e6-
96231b3b80d8
Tareq A. Siraj [Mon, 12 Aug 2013 17:10:49 +0000 (17:10 +0000)]
Fixes a bug when iterating on paths
This fixes the incorrect implementation of iterating on file/directory
paths.
Differential Review: http://llvm-reviews.chandlerc.com/D1277
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188183
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Mon, 12 Aug 2013 13:07:23 +0000 (13:07 +0000)]
This patch implements ei and di instructions for mips. Test cases are added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188176
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Mon, 12 Aug 2013 12:43:26 +0000 (12:43 +0000)]
Fix FileCheck --check-prefix lines.
Various tests had sprung up over the years which had --check-prefix=ABC on the
RUN line, but "CHECK-ABC:" later on. This happened to work before, but was
strictly incorrect. FileCheck is getting stricter soon though.
Patch by Ron Ofir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188173
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 12 Aug 2013 11:50:44 +0000 (11:50 +0000)]
Remove unused SpecialCaseList constructors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188171
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 12 Aug 2013 11:46:09 +0000 (11:46 +0000)]
Add SpecialCaseList::createOrDie() factory and use it in sanitizer passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188169
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 12 Aug 2013 10:57:51 +0000 (10:57 +0000)]
Revert r188164: Stablize MCK_Reg ordering in AsmMatcherEmitter
Apparently caused a failure on Darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188166
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 12 Aug 2013 10:40:11 +0000 (10:40 +0000)]
Remove all checking for the various terminfo headers (term.h and
curses.h). Finding these headers is next to impossible. For example, on
Debian systems libtinfo-dev provides the terminfo reading library we
want, but *not* term.h. For the header, you have to use libncurses-dev.
And libncursesw-dev provides a *different* term.h in a different
location!
These headers aren't worth it. We want two functions the signatures of
which are clearly spec'ed in sys-v and other documentation. Just declare
them ourselves and call them. This should fix some debian builders and
provide better support for "minimal" debian systems that do want color
autodetection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188165
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 12 Aug 2013 10:39:45 +0000 (10:39 +0000)]
Stablize MCK_Reg ordering in AsmMatcherEmitter
clang bootstraps intermittently failed for me due a difference in
the MCK_Reg ordering in ARMGenAsmMatcher.inc. E.g. in my latest
run the stage 1 and stage 3 versions were the same but the stage 2
one was different (though still functionally correct). This meant
that the .o comparison failed.
MCK_Regs were assigned by iterating over a std::set< std::set<Record*> >,
and since std::set is sorted lexicographically, the order depended on the
order of the pointer values. This patch replaces the pointer ordering
with LessRecordByID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188164
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 12 Aug 2013 10:28:10 +0000 (10:28 +0000)]
[SystemZ] Use CLC and IPM to implement memcmp
For now this is restricted to fixed-length comparisons with a length
in the range [1, 256], as for memcpy() and MVC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188163
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 12 Aug 2013 10:17:33 +0000 (10:17 +0000)]
[SystemZ] Add a definition of the CLC instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188162
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 12 Aug 2013 10:05:58 +0000 (10:05 +0000)]
[SystemZ] Add a definition of the IPM instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188161
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 12 Aug 2013 09:49:17 +0000 (09:49 +0000)]
Target a minimal terminfo library rather than necessarily a full curses
library for color support detection. This still will use a curses
library if that is all we have available on the system. This change
tries to use a smaller subset of the curses library, specifically the
subset that is on some systems split off into a separate library. For
example, if you install ncurses configured --with-tinfo, a 'libtinfo' is
install that provides just the terminfo querying functionality. That
library is now used instead of curses when it is available.
This happens to fix a build error on systems with that library because
when we tried to link ncurses into the binary, we didn't pull tinfo in
as well. =]
It should also provide an easy path for supporting the NetBSD
libterminfo library, but as I don't have access to a NetBSD system I'm
leaving adding that support to those folks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188160
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Mon, 12 Aug 2013 09:45:46 +0000 (09:45 +0000)]
Allow compatible extension attributes for tail calls
If the tail-callee and caller give the same bits via the same signext/zeroext
attribute then a tail-call should be allowed, since the extension has already
been done by the callee.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188159
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 12 Aug 2013 09:37:29 +0000 (09:37 +0000)]
Remove global construction. const char* is sufficient here.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188158
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 12 Aug 2013 09:04:58 +0000 (09:04 +0000)]
Relax conditions of test added in r188156 to fix it on Windows
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188157
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 12 Aug 2013 07:49:36 +0000 (07:49 +0000)]
Introduce factory methods for SpecialCaseList
Summary:
Doing work in constructors is bad: this change suggests to
call SpecialCaseList::create(Path, Error) instead of
"new SpecialCaseList(Path)". Currently the latter may crash with
report_fatal_error, which is undesirable - sometimes we want to report
the error to user gracefully - for example, if he provides an incorrect
file as an argument of Clang's -fsanitize-blacklist flag.
Reviewers: pcc
Reviewed By: pcc
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1327
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188156
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 12 Aug 2013 07:26:09 +0000 (07:26 +0000)]
Fix big-endian handling of integer-to-vector bitcasts in InstCombine
These functions used to assume that the lsb of an integer corresponds
to vector element 0, whereas for big-endian it's the other way around:
the msb is in the first element and the lsb is in the last element.
Fixes MultiSource/Benchmarks/mediabench/gsm/toast for z.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188155
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 11 Aug 2013 21:30:27 +0000 (21:30 +0000)]
Don't generate floating point stubs for mips16 code if the function
is actually an instrinsic that will not occur in libc. This list here
is not exhaustive but fixes the one places in test-suite where this occurs.
I have filed a bug against myself to research the full list and add them
to the array of such cases. In the future, actual stub generation will occur
in a later phase and we won't need this code because we will know at that time
during the compilation that in fact no helper function was even needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188149
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Sun, 11 Aug 2013 12:29:16 +0000 (12:29 +0000)]
AVX-512: Added more tests for BROADCAST
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188148
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Sun, 11 Aug 2013 07:55:09 +0000 (07:55 +0000)]
AVX-512: Added VPERM* instructons and MOV* zmm-to-zmm instructions.
Added a test for shuffles using VPERM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188147
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 11 Aug 2013 02:17:11 +0000 (02:17 +0000)]
Re-instate r187323 which fast-tracks promotable allocas as soon as the
SROA-based analysis has enough information. This should work now that
both mem2reg *and* the SSAUpdater-based AllocaPromoter have been updated
to be able to promote the types of allocas that the SROA analysis
detects.
I've included tests for the AllocaPromoter that were only possible to
write once we fast-tracked promotable allocas without rewriting them.
This includes a test both for r187347 and r188145.
Original commit log for r187323:
"""
Now that mem2reg understands how to cope with a slightly wider set of uses of
an alloca, we can pre-compute promotability while analyzing an alloca for
splitting in SROA. That lets us short-circuit the common case of a bunch of
trivially promotable allocas. This cuts 20% to 30% off the run time of SROA for
typical frontend-generated IR sequneces I'm seeing. It gets the new SROA to
within 20% of ScalarRepl for such code. My current benchmark for these numbers
is PR15412, but it fits the general pattern of IR emitted by Clang so it should
be widely applicable.
"""
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188146
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 11 Aug 2013 01:56:15 +0000 (01:56 +0000)]
Finish fixing the SSAUpdater-based AllocaPromoter strategy in SROA to cope with
the more general set of patterns that are now handled by mem2reg and that we
can detect quickly while doing SROA's initial analysis. Notably, this allows it
to promote through no-op bitcast and GEP sequences. A core part of the
SSAUpdater approach is the ability to test whether a particular instruction is
part of the set being promoted. Testing this becomes significantly more complex
in the world where the operand to every load and store isn't the alloca itself.
I ended up using the approach of walking up the def-chain until we find the
alloca. I benchmarked this against keeping a set of pointer operands and
keeping a set of the loads and stores we care about, and this one seemed faster
although the difference was very small.
No test case yet because currently the rewriting always "fixes" the inputs to
not require this. The next patch which re-enables early promotion of easy cases
in SROA will include a test case that specifically exercises this aspect of the
alloca promoter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188145
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 11 Aug 2013 01:03:18 +0000 (01:03 +0000)]
Reformat some bits of AllocaPromoter and simplify the name and type of
our visiting datastructures in the AllocaPromoter/SSAUpdater path of
SROA. Also shift the order if clears around to be more consistent.
No functionality changed here, this is just a cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188144
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sat, 10 Aug 2013 22:18:22 +0000 (22:18 +0000)]
Incorrect JAL instruction attributes caused the optimizer to make a wrong
instruction move. Just affects static relocation. -static works fine now
with mips16 for the most part.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188143
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Sat, 10 Aug 2013 20:16:06 +0000 (20:16 +0000)]
Revert r188119 "Kill some duplicated code for removing unreachable BBs."
It is breaking builbots with libgmalloc enabled on Mac OS X.
$ cd llvm ; mkdir release ; cd release
$ ../configure --enable-optimized —prefix=$PWD/install
$ make
$ make check
$ Release+Asserts/bin/llvm-lit -v --param use_gmalloc=1 --param \
gmalloc_path=/usr/lib/libgmalloc.dylib \
../test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188142
91177308-0d34-0410-b5e6-
96231b3b80d8
Venkatraman Govindaraju [Sat, 10 Aug 2013 20:13:20 +0000 (20:13 +0000)]
[Sparc] Enable xword directive in sparcv9.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188141
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Sat, 10 Aug 2013 17:34:08 +0000 (17:34 +0000)]
Teach ValueTracking about address spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188140
91177308-0d34-0410-b5e6-
96231b3b80d8
Niels Ole Salscheider [Sat, 10 Aug 2013 10:38:54 +0000 (10:38 +0000)]
R600/SI: FMA is faster than fmul and fadd for f64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188136
91177308-0d34-0410-b5e6-
96231b3b80d8
Niels Ole Salscheider [Sat, 10 Aug 2013 10:38:47 +0000 (10:38 +0000)]
R600/SI: Add FMA pattern
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188135
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 10 Aug 2013 00:50:57 +0000 (00:50 +0000)]
Check for $PWD in llvm::sys::current_path.
Some users (clang, libTooling) require this. After this patch we can remove
the calls to getenv("PWD") from clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188125
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Fri, 9 Aug 2013 23:22:27 +0000 (23:22 +0000)]
[objc-arc] Track if we encountered an additive overflow while computing {TopDown,BottomUp}PathCounts and do nothing if it occurred.
I fixed the aforementioned problems that came up on some of the linux boxes.
Major thanks to Nick Lewycky for his help debugging!
rdar://
14590914
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188122
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 9 Aug 2013 22:47:24 +0000 (22:47 +0000)]
Kill some duplicated code for removing unreachable BBs.
This moves removeUnreachableBlocksFromFn from SimplifyCFGPass.cpp
to Utils/Local.cpp and uses it to replace the implementation of
llvm::removeUnreachableBlocks, which appears to do a strict subset
of what removeUnreachableBlocksFromFn does.
Differential Revision: http://llvm-reviews.chandlerc.com/D1334
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188119
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 9 Aug 2013 21:42:53 +0000 (21:42 +0000)]
DataFlowSanitizer: Remove unreachable BBs so IR continues to verify
under the args ABI.
Differential Revision: http://llvm-reviews.chandlerc.com/D1316
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188113
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 9 Aug 2013 21:39:36 +0000 (21:39 +0000)]
[lit] Remove old ExamplesTests directory.
- The actual tests have better coverage than those, and they weren't useful
anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188110
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 9 Aug 2013 21:39:28 +0000 (21:39 +0000)]
[lit] Move ManyTests examples to lit/examples/many-tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188109
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 9 Aug 2013 21:39:24 +0000 (21:39 +0000)]
[lit] Drop deprecated aliases for lit and old module names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188108
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 9 Aug 2013 21:39:17 +0000 (21:39 +0000)]
[lit] Update lit's own tests to use lit_config and lit package, as appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188107
91177308-0d34-0410-b5e6-
96231b3b80d8