oota-llvm.git
10 years agoAVX-512: aligned / unaligned load and store for 512-bit integer vectors.
Elena Demikhovsky [Tue, 22 Oct 2013 09:19:28 +0000 (09:19 +0000)]
AVX-512: aligned / unaligned load and store for 512-bit integer vectors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193156 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd testcase for PR3168. It was fixed over time.
Bill Wendling [Tue, 22 Oct 2013 08:23:03 +0000 (08:23 +0000)]
Add testcase for PR3168. It was fixed over time.
PR3168

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193152 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUsing FoldingSet in SelectionDAG::getVTList.
Wan Xiaofei [Tue, 22 Oct 2013 08:02:02 +0000 (08:02 +0000)]
Using FoldingSet in SelectionDAG::getVTList.

VTList has a long life cycle through the module and getVTList is frequently called. In current getVTList, sequential search over a std::vector is used, this is inefficient in big module.
This patch use FoldingSet to implement hashing mechanism when searching.

Reviewer: Nadav Rotem
Test    : Pass unit tests & LNT test suite

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193150 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agollvm-c: Add LLVMPrintTypeToString
Anders Waldenborg [Tue, 22 Oct 2013 06:58:34 +0000 (06:58 +0000)]
llvm-c: Add LLVMPrintTypeToString

Differential Revision: http://llvm-reviews.chandlerc.com/D1963

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193149 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoChange llvm-cov output formatting to be more similar to gcov.
Bob Wilson [Tue, 22 Oct 2013 05:09:41 +0000 (05:09 +0000)]
Change llvm-cov output formatting to be more similar to gcov.

- Replaced tabs with proper padding
- print() takes two arguments, which are the GCNO and GCDA filenames
- Files are listed at the top of output, appended by line 0
- Stripped strings of trailing \0s
- Removed last two lines of whitespace in output

Patch by Yuchen Wu!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193148 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClarify SCEV comments.
Andrew Trick [Tue, 22 Oct 2013 05:09:40 +0000 (05:09 +0000)]
Clarify SCEV comments.

We handle for(i=n; i>0; i -= s) by canonicalizing within SCEV to for(i=-n; i<0; i += s).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193147 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoReplace (V)MOVZDI2PDIrr/rm instructions with patterns that select (V)MOVDI2PDIrr/rm.
Craig Topper [Tue, 22 Oct 2013 04:35:20 +0000 (04:35 +0000)]
Replace (V)MOVZDI2PDIrr/rm instructions with patterns that select (V)MOVDI2PDIrr/rm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193146 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: Thumb2 copy for GPRPair needs to use thumb instructions.
Jim Grosbach [Tue, 22 Oct 2013 02:29:37 +0000 (02:29 +0000)]
ARM: Thumb2 copy for GPRPair needs to use thumb instructions.

Use tMOVr instead of plain MOVr.

rdar://15193017

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193139 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoARM: Clean up copyPhysReg() a bit.
Jim Grosbach [Tue, 22 Oct 2013 02:29:35 +0000 (02:29 +0000)]
ARM: Clean up copyPhysReg() a bit.

No functional change, just cleaning things up for readability.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193138 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTBAA: fix PR17620.
Manman Ren [Tue, 22 Oct 2013 01:40:25 +0000 (01:40 +0000)]
TBAA: fix PR17620.

We can have a struct type with a single field and the field does not start
with 0. In that case, we should correctly update the offset.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193137 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFormatting/whitespace.
Eric Christopher [Tue, 22 Oct 2013 00:22:39 +0000 (00:22 +0000)]
Formatting/whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193135 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMove the printing of llvm-cov information out from collectLineCounts().
Bob Wilson [Tue, 22 Oct 2013 00:09:03 +0000 (00:09 +0000)]
Move the printing of llvm-cov information out from collectLineCounts().

collectLineCounts() should only organize the output data. This is done in
anticipation of subsequent changes which will pass in GCNO and GCDA filenames
into the print function where it is printed similar to the gcov output.

Patch by Yuchen Wu!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193134 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agofix two typos.
Adrian Prantl [Mon, 21 Oct 2013 23:55:19 +0000 (23:55 +0000)]
fix two typos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193133 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFIXME comment shouldn't have been doxygen style
Andrew Kaylor [Mon, 21 Oct 2013 23:27:02 +0000 (23:27 +0000)]
FIXME comment shouldn't have been doxygen style

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193131 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix spelling, grammar, and match naming convention for test files.
Eric Christopher [Mon, 21 Oct 2013 23:14:06 +0000 (23:14 +0000)]
Fix spelling, grammar, and match naming convention for test files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193130 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDWARF Type Hashing: Include reference and rvalue reference type in the declarable...
David Blaikie [Mon, 21 Oct 2013 23:06:19 +0000 (23:06 +0000)]
DWARF Type Hashing: Include reference and rvalue reference type in the declarable summary hashing path

More support for 7.25 Part 5.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193129 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDWARF type hashing: begin implementing Step 5, summary hashing in declarable contexts
David Blaikie [Mon, 21 Oct 2013 22:36:50 +0000 (22:36 +0000)]
DWARF type hashing: begin implementing Step 5, summary hashing in declarable contexts

There are several other tag types that need similar handling but to
ensure test coverage they'll be coming incrementally.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193126 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemoving unnecessary link component for MCJIT unittests
Andrew Kaylor [Mon, 21 Oct 2013 22:35:06 +0000 (22:35 +0000)]
Removing unnecessary link component for MCJIT unittests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193125 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDIEHashTest: Correct the order of operands to the TEST macro
David Blaikie [Mon, 21 Oct 2013 20:28:30 +0000 (20:28 +0000)]
DIEHashTest: Correct the order of operands to the TEST macro

And add the 'Test' suffix so the test case name matches the file name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193119 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add the constraint to NEON scalar mla/mls instructions.
Chad Rosier [Mon, 21 Oct 2013 20:11:47 +0000 (20:11 +0000)]
[AArch64] Add the constraint to NEON scalar mla/mls instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193117 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSimplifyCFG: Don't duplicate calls to functions marked noduplicate v2
Tom Stellard [Mon, 21 Oct 2013 20:07:30 +0000 (20:07 +0000)]
SimplifyCFG: Don't duplicate calls to functions marked noduplicate v2

v2:
  - Use CI->cannotDuplicate()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193115 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused TargetLowering field.
Matt Arsenault [Mon, 21 Oct 2013 20:04:01 +0000 (20:04 +0000)]
Remove unused TargetLowering field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193113 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix CodeGen for vectors of pointers with address spaces.
Matt Arsenault [Mon, 21 Oct 2013 20:03:58 +0000 (20:03 +0000)]
Fix CodeGen for vectors of pointers with address spaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193112 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix CodeGen for different size address space GEPs
Matt Arsenault [Mon, 21 Oct 2013 20:03:54 +0000 (20:03 +0000)]
Fix CodeGen for different size address space GEPs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193111 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse more type helper functions
Matt Arsenault [Mon, 21 Oct 2013 19:43:56 +0000 (19:43 +0000)]
Use more type helper functions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193109 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoReuse variable
Matt Arsenault [Mon, 21 Oct 2013 19:24:15 +0000 (19:24 +0000)]
Reuse variable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193107 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix the build in DIE.cpp with MSVC 2010
Reid Kleckner [Mon, 21 Oct 2013 19:18:31 +0000 (19:18 +0000)]
Fix the build in DIE.cpp with MSVC 2010

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193106 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDWARF type hashing: Handle multiple (including recursive) references to the same...
David Blaikie [Mon, 21 Oct 2013 18:59:40 +0000 (18:59 +0000)]
DWARF type hashing: Handle multiple (including recursive) references to the same type

This uses a map, keeping the type DIE numbering separate from the DIEs
themselves - alternatively we could do things the way GCC does if we
want to add an integer to the DIE type to record the numbering there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193105 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTeach SimplifyCFG about address spaces
Matt Arsenault [Mon, 21 Oct 2013 18:55:08 +0000 (18:55 +0000)]
Teach SimplifyCFG about address spaces

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193104 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix creating bitcasts between address spaces in SCEV.
Matt Arsenault [Mon, 21 Oct 2013 18:41:10 +0000 (18:41 +0000)]
Fix creating bitcasts between address spaces in SCEV.

The test before wasn't successfully testing this
since it was missing the datalayout piece to change
the size of the second address space.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193102 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused SCEV functions
Matt Arsenault [Mon, 21 Oct 2013 18:08:09 +0000 (18:08 +0000)]
Remove unused SCEV functions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193097 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoX86 vector element shift-by-immediate instructions take i8 immediates. Make
Lang Hames [Mon, 21 Oct 2013 17:51:24 +0000 (17:51 +0000)]
X86 vector element shift-by-immediate instructions take i8 immediates. Make
the instruction defenitions and ISEL reflect this.

Prior to this patch these instructions took an i32i8imm, and the high bits were
dropped during encoding. This led to incorrect behavior for shifts by
immediates higher than 255. This patch fixes that issue by detecting large
immediate shifts and returning constant zero (for logical shifts) or capping
the shift amount at an encodable value (for arithmetic shifts).

Fixes <rdar://problem/14968098>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193096 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix up some old review feedback.
Eric Christopher [Mon, 21 Oct 2013 17:48:51 +0000 (17:48 +0000)]
Fix up some old review feedback.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193095 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoImproving MCJIT/RuntimeDyld thread safety
Andrew Kaylor [Mon, 21 Oct 2013 17:42:06 +0000 (17:42 +0000)]
Improving MCJIT/RuntimeDyld thread safety

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193094 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebugInfo: Put each kind of constant (form, attribute, tag, etc) into its own enum...
David Blaikie [Mon, 21 Oct 2013 17:28:37 +0000 (17:28 +0000)]
DebugInfo: Put each kind of constant (form, attribute, tag, etc) into its own enum for ease of use.

This allows various variables to be more self-documenting and easier to
debug by being of specific types without overlapping enum values.

Precommit review by Eric Christopher.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193091 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoOptimize more linkonce_odr values during LTO.
Rafael Espindola [Mon, 21 Oct 2013 17:14:55 +0000 (17:14 +0000)]
Optimize more linkonce_odr values during LTO.

When a linkonce_odr value that is on the dso list is not unnamed_addr
we can still look to see if anything is actually using its address. If
not, it is safe to hide it.

This patch implements that by moving GlobalStatus to Transforms/Utils
and using it in Internalize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193090 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebugInfo: Hash DW_FORM_GNU_str_index as a string.
David Blaikie [Mon, 21 Oct 2013 16:37:22 +0000 (16:37 +0000)]
DebugInfo: Hash DW_FORM_GNU_str_index as a string.

Found while adding type safety to the various DWARF enumerations (form,
attribute, tag, etc) that caused Clang to warn on an incompletely
covered switch. Converting the comment to a default/unreachable
uncovered this case of an unsupported form encoding. Seems we were
skipping fission strings entirely.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193089 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAVX-512: MUL operation lowering for v8i64
Elena Demikhovsky [Mon, 21 Oct 2013 13:27:34 +0000 (13:27 +0000)]
AVX-512: MUL operation lowering for v8i64

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193083 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Direct Object Emission support for LD/ST instructions.
Matheus Almeida [Mon, 21 Oct 2013 13:07:13 +0000 (13:07 +0000)]
[mips][msa] Direct Object Emission support for LD/ST instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193082 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Direct Object Emission support for LDI instructions.
Matheus Almeida [Mon, 21 Oct 2013 12:56:20 +0000 (12:56 +0000)]
[mips][msa] Direct Object Emission support for LDI instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193081 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Direct Object Emission support for MOVE.v.
Matheus Almeida [Mon, 21 Oct 2013 12:43:54 +0000 (12:43 +0000)]
[mips][msa] Direct Object Emission support for MOVE.v.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193080 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Direct Object Emission support for CTCMSA and CFCMSA.
Matheus Almeida [Mon, 21 Oct 2013 12:26:50 +0000 (12:26 +0000)]
[mips][msa] Direct Object Emission support for CTCMSA and CFCMSA.

These instructions are logically related as they allow read/write of MSA control registers.
Currently MSA control registers are emitted by number but hopefully that will change as soon
as GAS starts accepting them by name as that would make the assembly easier to read.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193078 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Direct Object Emission of SPLAT instruction.
Matheus Almeida [Mon, 21 Oct 2013 12:07:26 +0000 (12:07 +0000)]
[mips][msa] Direct Object Emission of SPLAT instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193077 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Fix definition of SLD instruction.
Matheus Almeida [Mon, 21 Oct 2013 11:47:56 +0000 (11:47 +0000)]
[mips][msa] Fix definition of SLD instruction.

The second parameter of the SLD intrinsic is the number of columns (GPR) to
slide left the source array.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193076 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix the predecessor removal logic in r193045.
Michael Gottesman [Mon, 21 Oct 2013 05:20:11 +0000 (05:20 +0000)]
Fix the predecessor removal logic in r193045.

Additionally some small comment/stylistic fixes are included as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193068 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDon't eliminate a partially redundant load if it's in a landing pad.
Bill Wendling [Mon, 21 Oct 2013 04:09:17 +0000 (04:09 +0000)]
Don't eliminate a partially redundant load if it's in a landing pad.

A landing pad can be jumped to only by the unwind edge of an invoke
instruction. If we eliminate a partially redundant load in a landing pad, it
will create a basic block that violates this constraint. It then leads to other
problems down the line if it tries to merge that basic block with the landing
pad. Avoid this by not eliminating the load in a landing pad.

PR17621

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193064 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix typo in test's XFAIL line. Patch by Dimitry Andric!
Nick Lewycky [Mon, 21 Oct 2013 00:46:21 +0000 (00:46 +0000)]
Fix typo in test's XFAIL line. Patch by Dimitry Andric!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193063 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTeach simplify-cfg how to correctly create covered lookup tables for switches on...
Michael Gottesman [Sun, 20 Oct 2013 07:04:37 +0000 (07:04 +0000)]
Teach simplify-cfg how to correctly create covered lookup tables for switches on iN with N >= 3.

One optimization simplify-cfg performs is the converting of switches to
lookup tables if the switch has > 4 cases. This is done by:

1. Finding the max/min case value and calculating the switch case range.
2. Create a lookup table basic block.
3. Perform a check in the switch's BB to see if the input value is in
the switch's case range. If the input value satisfies said predicate
branch to the lookup table BB, otherwise branch to the switch's default
destination BB using the default value as the result.

The conditional check consists of subtracting the min case value of the
table from any input iN value and then ensuring that said value is
unsigned less than the size of the lookup table represented as an iN
value.

If the lookup table is a covered lookup table, the size of the table will be N
which is 0 as an iN value. Thus the comparison will be an `icmp ult` of an iN
value against 0 which is always false yielding the incorrect result.

This patch fixes this problem by recognizing if we have a covered lookup table
and if we do, unconditionally jumps to the lookup table BB since the covering
property of the lookup table implies no input values could not be handled by
said BB.

rdar://15268442

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193045 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTypo.
Peter Collingbourne [Sun, 20 Oct 2013 03:19:25 +0000 (03:19 +0000)]
Typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193043 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoEmit prefix data after debug and EH directives.
Peter Collingbourne [Sun, 20 Oct 2013 02:16:21 +0000 (02:16 +0000)]
Emit prefix data after debug and EH directives.

This ensures that the prefix data is treated as part of the function for
the purpose of debug info.  This provides a better debugging experience,
among other things by allowing a debug info client to correctly look up
a function in debug info given a function pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193042 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoEmit DWARF line entries for all data in the instruction stream.
Peter Collingbourne [Sun, 20 Oct 2013 02:16:18 +0000 (02:16 +0000)]
Emit DWARF line entries for all data in the instruction stream.

r182712 attempted to do this, but it failed to handle data emitted via
EmitBytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193041 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused variable.
Benjamin Kramer [Sat, 19 Oct 2013 16:32:15 +0000 (16:32 +0000)]
Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193038 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPerform an intelligent splice of the predecessor with the single successor.
Bill Wendling [Sat, 19 Oct 2013 11:27:12 +0000 (11:27 +0000)]
Perform an intelligent splice of the predecessor with the single successor.

If the predecessor's being spliced into a landing pad, then we need the PHIs to
come first and the rest of the predecessor's code to come *after* the landing
pad instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193035 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAvoid duplicate search by reusing the iterator.
Yaron Keren [Sat, 19 Oct 2013 09:04:26 +0000 (09:04 +0000)]
Avoid duplicate search by reusing the iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193034 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdded comments from Andrew Kaylor.
Yaron Keren [Sat, 19 Oct 2013 09:03:20 +0000 (09:03 +0000)]
Added comments from Andrew Kaylor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193033 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove NDBEUG from all release types compile flags.
Yaron Keren [Sat, 19 Oct 2013 07:30:37 +0000 (07:30 +0000)]
Remove NDBEUG from all release types compile flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193031 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoReformat.
Eric Christopher [Sat, 19 Oct 2013 01:04:47 +0000 (01:04 +0000)]
Reformat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193024 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix up a few minor performance problems spotted in code review.
Eric Christopher [Sat, 19 Oct 2013 01:04:42 +0000 (01:04 +0000)]
Fix up a few minor performance problems spotted in code review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193023 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate PPC loop tests after SCEV non-unit-stride checkin r193015.
Andrew Trick [Sat, 19 Oct 2013 00:14:04 +0000 (00:14 +0000)]
Update PPC loop tests after SCEV non-unit-stride checkin r193015.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193021 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSCEV should use NSW to get trip count for positive nonunit stride loops.
Andrew Trick [Fri, 18 Oct 2013 23:43:53 +0000 (23:43 +0000)]
SCEV should use NSW to get trip count for positive nonunit stride loops.

SCEV currently fails to compute loop counts for nonunit stride
loops. This comes up frequently. It prevents loop optimization and
forces vectorization to insert extra loop checks.

For example:
void foo(int n, int *x) {
 for (int i = 0; i < n; i += 3) {
   x[i] = i;
   x[i+1] = i+1;
   x[i+2] = i+2;
 }
}

We need to properly handle the case in which limit > INT_MAX-stride. In
the above case: n > INT_MAX-3. In this case the loop counter will step
beyond the limit and overflow at the same time. However, knowing that
signed integer overlow in undefined, we can assume the loop test
behavior is arbitrary after overflow. This obeys both C undefined
behavior rules, and the more strict LLVM poison value rules.

I'm finally fixing this in response to Hal Finkel's persistence.
The most probable reason that we never optimized this before is that
we were being careful to handle case where the developer expected a
side-effect free infinite loop relying on overflow:

for (int i = 0; i < n; i += s) {
  ++j;
}
return j;

If INT_MAX+1 is a multiple of s and n > INT_MAX-s, then we might
expect an infinite loop. However there are plenty of ways to achieve
this effect without relying on undefined behavior of signed overflow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193015 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoWrite a simple description of the 'target triple' directive. This should be expanded...
Bill Wendling [Fri, 18 Oct 2013 23:41:25 +0000 (23:41 +0000)]
Write a simple description of the 'target triple' directive. This should be expanded. PR8976.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193014 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMark some command line flags as hidden
Nadav Rotem [Fri, 18 Oct 2013 23:38:13 +0000 (23:38 +0000)]
Mark some command line flags as hidden

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193013 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoClarify that an alignment of 0 or 1 on a mem* intrinsic means 'no alignment'.
Bill Wendling [Fri, 18 Oct 2013 23:26:55 +0000 (23:26 +0000)]
Clarify that an alignment of 0 or 1 on a mem* intrinsic means 'no alignment'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193012 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoYAMLBench.cpp: Use llvm_move instead of std::move also here.
NAKAMURA Takumi [Fri, 18 Oct 2013 23:25:39 +0000 (23:25 +0000)]
YAMLBench.cpp: Use llvm_move instead of std::move also here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193011 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove reference to obsolete arguments.
Bill Wendling [Fri, 18 Oct 2013 23:11:25 +0000 (23:11 +0000)]
Remove reference to obsolete arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193009 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate to reflect current GC APIs and usage. The example code is taken from the Erlan...
Bill Wendling [Fri, 18 Oct 2013 23:09:06 +0000 (23:09 +0000)]
Update to reflect current GC APIs and usage. The example code is taken from the Erlang GC implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193008 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCan we move to C++11 already?
Michael J. Spencer [Fri, 18 Oct 2013 23:07:01 +0000 (23:07 +0000)]
Can we move to C++11 already?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193007 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[Support][YAML] Add support for accessing tags and tag handle substitution.
Michael J. Spencer [Fri, 18 Oct 2013 22:38:04 +0000 (22:38 +0000)]
[Support][YAML] Add support for accessing tags and tag handle substitution.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193004 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebug Info: add a newly-created DIE to a parent in the same function.
Manman Ren [Fri, 18 Oct 2013 21:14:19 +0000 (21:14 +0000)]
Debug Info: add a newly-created DIE to a parent in the same function.

With this commit, all DIEs created in CompileUnit will be added to parents
inside the same function. Also make getOrCreateTemplateType|Value functions
private.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193002 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebug Info: simplify code a bit.
Manman Ren [Fri, 18 Oct 2013 20:52:22 +0000 (20:52 +0000)]
Debug Info: simplify code a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193001 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMC asm parser: allow ?'s in symbol names, and handle @'s in names in MS asm
Hans Wennborg [Fri, 18 Oct 2013 20:46:28 +0000 (20:46 +0000)]
MC asm parser: allow ?'s in symbol names, and handle @'s in names in MS asm

This is another (final?) stab at making us able to parse our own asm output
on Windows.

Symbols on Windows often contain @'s and ?'s in their names. Our asm parser
didn't like this. ?'s were not allowed, and @'s were intepreted as trying to
reference PLT/GOT/etc.

We can't just add quotes around the bad names, since e.g. for MinGW, we use gas
to assemble, and it doesn't like quotes in some places (notably in .def
directives).

This commit makes us allow ?'s in symbol names, and @'s in symbol names for MS
assembly.

Differential Revision: http://llvm-reviews.chandlerc.com/D1978

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193000 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCheck for errors when calling lto_codegen_add_module in the gold plugin.
Rafael Espindola [Fri, 18 Oct 2013 19:32:06 +0000 (19:32 +0000)]
Check for errors when calling lto_codegen_add_module in the gold plugin.

Thanks to Milan LenĨo for noticing it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192996 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert the rest of r192749 to bring back the buildbot. These two
Eric Christopher [Fri, 18 Oct 2013 16:56:48 +0000 (16:56 +0000)]
Revert the rest of r192749 to bring back the buildbot. These two
error messages should not be able to occur at the same time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192985 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTest case for r192957
David Majnemer [Fri, 18 Oct 2013 14:49:59 +0000 (14:49 +0000)]
Test case for r192957

Forgot to 'svn add'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192978 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPure refactoring change.
Richard Barton [Fri, 18 Oct 2013 14:41:50 +0000 (14:41 +0000)]
Pure refactoring change.

Patch by Artyom Skrobov.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192977 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[PATCH] Fix PR17168 (DAG scheduler inserts DBG_VALUE before PHI with fast-isel)
Bill Schmidt [Fri, 18 Oct 2013 14:20:11 +0000 (14:20 +0000)]
[PATCH] Fix PR17168 (DAG scheduler inserts DBG_VALUE before PHI with fast-isel)

PR17168 describes a test case that fails when compiling for debug with
fast-isel.  Investigation showed that the test was failing because a DBG_VALUE
machine instruction was placed prior to a PHI.

For this problem to occur requires the following:
 * Compile for debug
 * Compile with fast-isel
 * In a block B, fast-isel must partially succeed before punting to DAG-isel
 * B must start with a PHI
 * The first unhandled node in the DAG must not generate a machine instruction
 * A debug value with an order less than that of that first node exists

When all of these circumstances apply, the existing test that an instruction
was not inserted won't fire.  Currently it tests whether the block is empty,
or whether the last instruction generated is a phi.  When fast-isel has
partially succeeded, the last instruction generated will not be a phi.
Instead, we need to check whether the current insert position is immediately
following a phi.  This patch adds that check, and adds the test case from the
PR as a regression test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192976 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoR600: Remove \ at EOL from ascii art comments.
Benjamin Kramer [Fri, 18 Oct 2013 14:12:50 +0000 (14:12 +0000)]
R600: Remove \ at EOL from ascii art comments.

Completely harmless, but GCC likes to warn about it even when the next line is
a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192974 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd hint disassembly syntax for 16-bit Thumb hint instructions.
Richard Barton [Fri, 18 Oct 2013 14:09:49 +0000 (14:09 +0000)]
Add hint disassembly syntax for 16-bit Thumb hint instructions.

Patch by Artyom Skrobov

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192972 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add support for NEON scalar extract narrow instructions.
Chad Rosier [Fri, 18 Oct 2013 14:03:24 +0000 (14:03 +0000)]
[AArch64] Add support for NEON scalar extract narrow instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192970 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCorrect log message typo: ended ad -> ended at
Ed Maste [Fri, 18 Oct 2013 13:01:33 +0000 (13:01 +0000)]
Correct log message typo: ended ad -> ended at

(From LLDB r192897)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192968 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd hardware division as a default feature on Cortex-A15. Also add test cases to...
Silviu Baranga [Fri, 18 Oct 2013 10:18:40 +0000 (10:18 +0000)]
Add hardware division as a default feature on Cortex-A15. Also add test cases to check this, and change diagnostics for the hwdiv-arm feature to something useful.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192963 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[mips][msa] Added a regression test that depended on multiple patches to pass.
Daniel Sanders [Fri, 18 Oct 2013 09:52:21 +0000 (09:52 +0000)]
[mips][msa] Added a regression test that depended on multiple patches to pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192961 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDeveloper policy amendment regarding confidentiality notices
Alp Toker [Fri, 18 Oct 2013 08:45:43 +0000 (08:45 +0000)]
Developer policy amendment regarding confidentiality notices

Thanks to Daniel Berlin and Nadav Rotem for feedback and rewording!

Discussion:
  http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20131014/191677.html

Reviewed by: nrotem, dberlin

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192958 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCodeGen: Emit a libcall if the target doesn't support 16-byte wide atomics
David Majnemer [Fri, 18 Oct 2013 08:03:43 +0000 (08:03 +0000)]
CodeGen: Emit a libcall if the target doesn't support 16-byte wide atomics

There are targets that support i128 sized scalars but cannot emit
instructions that modify them directly.  The proper thing to do is to
emit a libcall.

This fixes PR17481.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192957 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix a conversion warning in the mingw32 build
Alp Toker [Fri, 18 Oct 2013 07:53:25 +0000 (07:53 +0000)]
Fix a conversion warning in the mingw32 build

gcc diagnoses this:
  warning: converting to non-pointer type 'unsigned int' from NULL

Also remove an empty statement.

No change in functionality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192955 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[DebugInfo] Remove unneeded struct member and hide struct definition. No functionalit...
Alexey Samsonov [Fri, 18 Oct 2013 07:13:32 +0000 (07:13 +0000)]
[DebugInfo] Remove unneeded struct member and hide struct definition. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192954 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix initialization order warning in mingw32 build
Alp Toker [Fri, 18 Oct 2013 07:09:58 +0000 (07:09 +0000)]
Fix initialization order warning in mingw32 build

No change in functionality.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192953 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[DebugInfo] Remove dead code.
Alexey Samsonov [Fri, 18 Oct 2013 07:03:16 +0000 (07:03 +0000)]
[DebugInfo] Remove dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192952 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Re-commit r192758 - MC: quote tricky symbol names in asm output"
Hans Wennborg [Fri, 18 Oct 2013 02:14:40 +0000 (02:14 +0000)]
Revert "Re-commit r192758 - MC: quote tricky symbol names in asm output"

This caused the clang-native-mingw32-win7 buildbot to break.

The assembler was complaining about the following lines that were showing up
in the asm for CrashRecoveryContext.cpp:

  movl  $"__ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4", 4(%eax)
  calll "_AddVectoredExceptionHandler@8"
  .def   "__ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4";
  "__ZL16ExceptionHandlerP19_EXCEPTION_POINTERS@4":
  calll "_RemoveVectoredExceptionHandler@4"

Reverting for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192940 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTemporarily revert r192749 as it is causing problems for LTO and
Eric Christopher [Fri, 18 Oct 2013 01:57:30 +0000 (01:57 +0000)]
Temporarily revert r192749 as it is causing problems for LTO and
requires a more in depth change to the IR structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192938 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDIEHash: Add more things (and remove one character) from the COLLECT_ATTR macro
David Blaikie [Thu, 17 Oct 2013 22:14:08 +0000 (22:14 +0000)]
DIEHash: Add more things (and remove one character) from the COLLECT_ATTR macro

Makes the uses more terse and requires that they use a semicolon at the
end that helps editors indent proceeding lines correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192925 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDIEHash: Support for simple (non-recursive, non-reused) type references
David Blaikie [Thu, 17 Oct 2013 22:07:09 +0000 (22:07 +0000)]
DIEHash: Support for simple (non-recursive, non-reused) type references

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192924 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago17309 ARM backend incorrectly lowers COPY_STRUCT_BYVAL_I32 for thumb1 targets
David Peixotto [Thu, 17 Oct 2013 19:52:05 +0000 (19:52 +0000)]
17309 ARM backend incorrectly lowers COPY_STRUCT_BYVAL_I32 for thumb1 targets

This commit implements the correct lowering of the
COPY_STRUCT_BYVAL_I32 pseudo-instruction for thumb1 targets.
Previously, the lowering of COPY_STRUCT_BYVAL_I32 generated the
post-increment forms of ldr/ldrh/ldrb instructions. Thumb1 does not
have the post-increment form of these instructions so the generated
assembly contained invalid instructions.

Passing the generated assembly to gcc caused it to complain with an
error like this:

  Error: cannot honor width suffix -- `ldrb r3,[r0],#1'

and the integrated assembler would generate an object file with an
invalid instruction encoding.

This commit contains a small test case that demonstrates the problem
with thumb1 targets as well as an expanded test case that more
throughly tests the lowering of byval struct passing for arm,
thumb1, and thumb2 targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192916 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRefactor lowering for COPY_STRUCT_BYVAL_I32
David Peixotto [Thu, 17 Oct 2013 19:49:22 +0000 (19:49 +0000)]
Refactor lowering for COPY_STRUCT_BYVAL_I32

This commit refactors the lowering of the COPY_STRUCT_BYVAL_I32
pseudo-instruction in the ARM backend. We introduce a new helper
class that encapsulates all of the operations needed during the
lowering. The operations are implemented for each subtarget in
different subclasses. Currently only arm and thumb2 subtargets are
supported.

This refactoring was done to easily implement support for thumb1
subtargets. This initial patch does not add support for thumb1, but
is only a refactoring. A follow on patch will implement the support
for thumb1 subtargets.

No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192915 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agollvm-c: Add LLVMIntPtrType{,ForAS}InContext
Anders Waldenborg [Thu, 17 Oct 2013 18:51:01 +0000 (18:51 +0000)]
llvm-c: Add LLVMIntPtrType{,ForAS}InContext

All of the Core API functions have versions which accept explicit context, in
addition to ones which work on global context. This commit adds functions
which accept explicit context to the Target API for consistency.

Patch by Peter Zotov

Differential Revision: http://llvm-reviews.chandlerc.com/D1912

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192913 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCMake: set stack size for MSVC in just one place
Hans Wennborg [Thu, 17 Oct 2013 18:39:47 +0000 (18:39 +0000)]
CMake: set stack size for MSVC in just one place

After r192904, Reid pointed out he thought we already set the stack
size for MSVC. Turns out we did, but it didn't seem to work.

This commit sets the stack size in a single place, using
CMAKE_EXE_LINKER_FLAGS because that seems to be the way that works
best.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192912 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRename fields of GlobalStatus to match the coding style.
Rafael Espindola [Thu, 17 Oct 2013 18:18:52 +0000 (18:18 +0000)]
Rename fields of GlobalStatus to match the coding style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192910 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[AArch64] Add support for NEON scalar three register different instruction
Chad Rosier [Thu, 17 Oct 2013 18:12:29 +0000 (18:12 +0000)]
[AArch64] Add support for NEON scalar three register different instruction
class.  The instruction class includes the signed saturating doubling
multiply-add long, signed saturating doubling multiply-subtract long, and
the signed saturating doubling multiply long instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192908 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agorename SafeToDestroyConstant to isSafeToDestroyConstant and clang-format.
Rafael Espindola [Thu, 17 Oct 2013 18:06:32 +0000 (18:06 +0000)]
rename SafeToDestroyConstant to isSafeToDestroyConstant and clang-format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192907 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSimplify the interface of AnalyzeGlobal a bit and rename to analyzeGlobal.
Rafael Espindola [Thu, 17 Oct 2013 18:00:25 +0000 (18:00 +0000)]
Simplify the interface of AnalyzeGlobal a bit and rename to analyzeGlobal.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192906 91177308-0d34-0410-b5e6-96231b3b80d8