platform/upstream/llvm.git
9 years agoAArch64: treat HFAs containing "half" types as blocks too.
Tim Northover [Mon, 8 Dec 2014 17:54:58 +0000 (17:54 +0000)]
AArch64: treat HFAs containing "half" types as blocks too.

llvm-svn: 223669

9 years ago[X86] Improved tablegen patters for matching TZCNT/LZCNT.
Andrea Di Biagio [Mon, 8 Dec 2014 17:47:18 +0000 (17:47 +0000)]
[X86] Improved tablegen patters for matching TZCNT/LZCNT.

Teach ISel how to match a TZCNT/LZCNT from a conditional move if the
condition code is X86_COND_NE.
Existing tablegen patterns only allowed to match TZCNT/LZCNT from a
X86cond with condition code equal to X86_COND_E. To avoid introducing
extra rules, I added an 'ImmLeaf' definition that checks if the
condition code is COND_E or COND_NE.

llvm-svn: 223668

9 years ago[Hexagon] Adding combine reg, reg with predicated forms.
Colin LeMahieu [Mon, 8 Dec 2014 17:33:06 +0000 (17:33 +0000)]
[Hexagon] Adding combine reg, reg with predicated forms.

llvm-svn: 223667

9 years agoSimplify the test. NFC.
Rafael Espindola [Mon, 8 Dec 2014 17:22:06 +0000 (17:22 +0000)]
Simplify the test. NFC.

Since the main file was empty, we can just copy the content of the Input file
into it.

llvm-svn: 223666

9 years agoSimplify test. NFC.
Rafael Espindola [Mon, 8 Dec 2014 17:02:50 +0000 (17:02 +0000)]
Simplify test. NFC.

This is just testing the largest merge mode for comdats. No need to use
hard to read names and fancy types.

llvm-svn: 223665

9 years ago[Hexagon] Adding packhl instruction.
Colin LeMahieu [Mon, 8 Dec 2014 17:01:18 +0000 (17:01 +0000)]
[Hexagon] Adding packhl instruction.

llvm-svn: 223664

9 years agoUse CHECK-DAG to reduce the noise in an upcoming patch.
Rafael Espindola [Mon, 8 Dec 2014 16:46:52 +0000 (16:46 +0000)]
Use CHECK-DAG to reduce the noise in an upcoming patch.

llvm-svn: 223663

9 years ago[mips] Add Mips-specific CCIf's for accessing the MipsCCState. NFC.
Daniel Sanders [Mon, 8 Dec 2014 15:40:09 +0000 (15:40 +0000)]
[mips] Add Mips-specific CCIf's for accessing the MipsCCState. NFC.

Reviewers: vmedic

Reviewed By: vmedic

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D6213

llvm-svn: 223662

9 years agoExplicitly include <sched.h> for sched_yield()
Sergey Dmitrouk [Mon, 8 Dec 2014 14:50:21 +0000 (14:50 +0000)]
Explicitly include <sched.h> for sched_yield()

It might be implicitly included by <pthread.h> (and that's why it worked
so far), but it's not guaranteed (for example, this is not the case with
newlib).

llvm-svn: 223661

9 years ago[X86] Improved lowering of packed v8i16 vector shifts by non-constant count.
Andrea Di Biagio [Mon, 8 Dec 2014 14:36:51 +0000 (14:36 +0000)]
[X86] Improved lowering of packed v8i16 vector shifts by non-constant count.

Before this patch, the backend sub-optimally expanded the non-constant shift
count of a v8i16 shift into a sequence of two 'movd' plus 'movzwl'.

With this patch the backend checks if the target features sse4.1. If so, then
it lets the shuffle legalizer deal with the expansion of the shift amount.

Example:
;;
define <8 x i16> @test(<8 x i16> %A, <8 x i16> %B) {
  %shamt = shufflevector <8 x i16> %B, <8 x i16> undef, <8 x i32> zeroinitializer
  %shl = shl <8 x i16> %A, %shamt
  ret <8 x i16> %shl
}
;;

Before (with -mattr=+avx):
  vmovd  %xmm1, %eax
  movzwl  %ax, %eax
  vmovd  %eax, %xmm1
  vpsllw  %xmm1, %xmm0, %xmm0
  retq

Now:
  vpxor  %xmm2, %xmm2, %xmm2
  vpblendw  $1, %xmm1, %xmm2, %xmm1
  vpsllw  %xmm1, %xmm0, %xmm0
  retq

llvm-svn: 223660

9 years agoMove the ValueMap lookup inside linkFunctionBody. NFC.
Rafael Espindola [Mon, 8 Dec 2014 14:25:26 +0000 (14:25 +0000)]
Move the ValueMap lookup inside linkFunctionBody. NFC.

llvm-svn: 223659

9 years agoUse range loops. NFC.
Rafael Espindola [Mon, 8 Dec 2014 14:20:10 +0000 (14:20 +0000)]
Use range loops. NFC.

llvm-svn: 223658

9 years agoUse range loops. NFC.
Rafael Espindola [Mon, 8 Dec 2014 14:05:33 +0000 (14:05 +0000)]
Use range loops. NFC.

llvm-svn: 223657

9 years agoFix linking of prologue data.
Rafael Espindola [Mon, 8 Dec 2014 13:44:38 +0000 (13:44 +0000)]
Fix linking of prologue data.

It would crash when the function was lazy linked.

llvm-svn: 223656

9 years ago[CMake] Fix installation of llvm-ranlib on multiconfig builder.
NAKAMURA Takumi [Mon, 8 Dec 2014 13:43:38 +0000 (13:43 +0000)]
[CMake] Fix installation of llvm-ranlib on multiconfig builder.

Introduce install_symlink.cmake from clang/tools/driver/clang_symlink.cmake.

FIXME: Would it be generalized?
llvm-svn: 223655

9 years agoSimple style fixes.
Rafael Espindola [Mon, 8 Dec 2014 13:35:09 +0000 (13:35 +0000)]
Simple style fixes.

* Use a range loop.
* Move simple continue checks earlier.
* clang-format.

llvm-svn: 223654

9 years agoMove materialize/Dematerialize calls to linkFunctionBody. NFC.
Rafael Espindola [Mon, 8 Dec 2014 13:29:33 +0000 (13:29 +0000)]
Move materialize/Dematerialize calls to linkFunctionBody. NFC.

Just less code duplication.

llvm-svn: 223653

9 years agoclang-format: Support commas in lambda return types.
Daniel Jasper [Mon, 8 Dec 2014 13:22:37 +0000 (13:22 +0000)]
clang-format: Support commas in lambda return types.

Before:
  auto next_pair = [](A * a) -> pair<A*, A*>{};

After:
  auto next_pair = [](A* a) -> pair<A*, A*>{};

llvm-svn: 223652

9 years ago[clang-tidy] google-runtime-int: Don't check C code.
Alexander Kornienko [Mon, 8 Dec 2014 11:17:25 +0000 (11:17 +0000)]
[clang-tidy] google-runtime-int: Don't check C code.

llvm-svn: 223651

9 years ago[msan] Intercept wcsto*.
Evgeniy Stepanov [Mon, 8 Dec 2014 10:41:28 +0000 (10:41 +0000)]
[msan] Intercept wcsto*.

Intercept wcstod, wcstof, wcstold, wcstol, wcstoul, wcstoll, wcstoull.

llvm-svn: 223650

9 years agoclang/test/Index/usrs.cpp: Appease targeting msvc.
NAKAMURA Takumi [Mon, 8 Dec 2014 10:20:33 +0000 (10:20 +0000)]
clang/test/Index/usrs.cpp: Appease targeting msvc.

llvm-svn: 223649

9 years agoRemoval Of Duplicate Test Case from shift.ll file
Sonam Kumari [Mon, 8 Dec 2014 09:40:43 +0000 (09:40 +0000)]
Removal Of Duplicate Test Case from shift.ll file

llvm-svn: 223648

9 years ago[libclang] Use same USR encoding for 'char' regardless of what the target considers...
Argyrios Kyrtzidis [Mon, 8 Dec 2014 09:09:05 +0000 (09:09 +0000)]
[libclang] Use same USR encoding for 'char' regardless of what the target considers the sign to be.

Should fix the clang-hexagon-elf bot.

llvm-svn: 223642

9 years agoX86 intrinsics moved form X86ISelLowering.cpp to X86IntrinsicsInfo.h
Elena Demikhovsky [Mon, 8 Dec 2014 09:03:08 +0000 (09:03 +0000)]
X86 intrinsics moved form X86ISelLowering.cpp to X86IntrinsicsInfo.h
X86ISelLowering.cpp has a long switch for intrinsics. I moved a part of
this long switch to the new intrinsics table in X86IntrinsicsInfo.h.
No functional changes, just code and compile time optimization.

llvm-svn: 223641

9 years ago[libclang] Encode InjectedClassNameType in the USR.
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:43 +0000 (08:48 +0000)]
[libclang] Encode InjectedClassNameType in the USR.

llvm-svn: 223634

9 years ago[libclang] Encode location info for anonymous embedded tag decls.
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:37 +0000 (08:48 +0000)]
[libclang] Encode location info for anonymous embedded tag decls.

Otherwise the USR will conflict with different embedded tag decls.

llvm-svn: 223633

9 years ago[libclang] Use same USR encoding for 'class' as 'struct'.
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:33 +0000 (08:48 +0000)]
[libclang] Use same USR encoding for 'class' as 'struct'.

'class' and 'struct' can be used interchangebly for forward references.
Use the same encoding otherwise we may get into a weird situation where the USR for the same
declaration is different based on whether the definition of the tag reference is visible or not.

llvm-svn: 223632

9 years ago[libclang] Encode C++11 rvalue reference types in the USR.
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:27 +0000 (08:48 +0000)]
[libclang] Encode C++11 rvalue reference types in the USR.

llvm-svn: 223631

9 years ago[libclang] Encode the C++11 method reference qualifier in the USR.
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:21 +0000 (08:48 +0000)]
[libclang] Encode the C++11 method reference qualifier in the USR.

llvm-svn: 223630

9 years ago[libclang] Reflect in USR generation that 'signed char' and 'unsigned char' can overl...
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:17 +0000 (08:48 +0000)]
[libclang] Reflect in USR generation that 'signed char' and 'unsigned char' can overload a 'char' in C++, by giving them distinct encodings.

llvm-svn: 223629

9 years ago[libclang] Function templates can be 'overloaded' by return type, so encode the retur...
Argyrios Kyrtzidis [Mon, 8 Dec 2014 08:48:11 +0000 (08:48 +0000)]
[libclang] Function templates can be 'overloaded' by return type, so encode the return type in the USR
and handle DependentNameType in order to be able to distinguish them.

llvm-svn: 223628

9 years agolit: Don't use python 2.6 features
David Majnemer [Mon, 8 Dec 2014 08:33:30 +0000 (08:33 +0000)]
lit: Don't use python 2.6 features

LLVM supports python 2.5, this fixes a (somewhat) recent regression.

llvm-svn: 223626

9 years agoThe lldb unwinder can now use the unwind information from the compact-unwind
Jason Molenda [Mon, 8 Dec 2014 03:09:00 +0000 (03:09 +0000)]
The lldb unwinder can now use the unwind information from the compact-unwind
section for x86_64 and i386 targets on Darwin systems.  Currently only the
compact unwind encoding for normal frame-using functions is supported but it
will be easy handle frameless functions when I have a bit more free time to
test it.  The LSDA and personality routines for functions are also retrieved
correctly for functions from the compact unwind section.

This new code is very fresh -- it passes the lldb testsuite and I've done
by-hand inspection of many functions and am getting correct behavior for all
of them.  There may need to be some bug fixing over the next couple weeks as
I exercise and test it further.  But I think it's fine right now so I'm
committing it.

<rdar://problem/13220837>

llvm-svn: 223625

9 years agoRevert a part of r223583, for now. It seems causing different emission between stage2...
NAKAMURA Takumi [Mon, 8 Dec 2014 02:07:22 +0000 (02:07 +0000)]
Revert a part of r223583, for now. It seems causing different emission between stage2(gcc-clang) and stage3 clang. Investigating.

llvm-svn: 223624

9 years agoIR: Fix bitcode compatability filenames
Duncan P. N. Exon Smith [Mon, 8 Dec 2014 00:41:39 +0000 (00:41 +0000)]
IR: Fix bitcode compatability filenames

As a fixup to r223616, follow the convention of naming the files after
the LLVM release whose bitcode they're maintaining compatability with.

llvm-svn: 223623

9 years agoSimplify computation of reduction dependences
Tobias Grosser [Sun, 7 Dec 2014 22:51:45 +0000 (22:51 +0000)]
Simplify computation of reduction dependences

This simplifies the construction of the input for the reduction dependence
computation and at the same time removes an assumption that expects the schedule
to be of 2D + 1 form (the odd dimensions giving textual order, the even
dimensions the loop iterations).

llvm-svn: 223621

9 years agoStop relying on MDNode::get() returning self-references
Duncan P. N. Exon Smith [Sun, 7 Dec 2014 21:12:10 +0000 (21:12 +0000)]
Stop relying on MDNode::get() returning self-references

Update for LLVM API change, wherein self-references are not uniqued (and
will never be returned by `MDNode::get()`).  We already have `Id`; just
return it.

This should fix the failing buildbot:

  http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/25167
  http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/25168

llvm-svn: 223620

9 years agoIR: Revert r223618 behaviour of MDNode::concatenate()
Duncan P. N. Exon Smith [Sun, 7 Dec 2014 20:32:11 +0000 (20:32 +0000)]
IR: Revert r223618 behaviour of MDNode::concatenate()

r223618 including special handling of `MDNode::intersect()`: if the
first operand is a self-reference with the same operands you're trying
to return, return it instead.

Reuse that handling in `MDNode::concatenate()` in the hopes that it
fixes a polly test that seems to rely on the old behaviour [1].

[1]: http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/25167

llvm-svn: 223619

9 years agoIR: Drop uniquing for self-referencing MDNodes
Duncan P. N. Exon Smith [Sun, 7 Dec 2014 19:52:06 +0000 (19:52 +0000)]
IR: Drop uniquing for self-referencing MDNodes

It doesn't make sense to unique self-referencing nodes.  Drop uniquing
for them.

Note that `MDNode::intersect()` occasionally returns self-referencing
nodes.  Previously these would be returned by `MDNode::get()`.  I'm not
convinced this was intended behaviour -- to me it seems it should return
a node whose only operand is the self-reference -- but I don't know much
about alias scopes so I'm preserving it for now.

This is part of PR21532.

llvm-svn: 223618

9 years agoIR: Remove reference to ENABLE_MDNODE_UNIQUING
Duncan P. N. Exon Smith [Sun, 7 Dec 2014 19:02:48 +0000 (19:02 +0000)]
IR: Remove reference to ENABLE_MDNODE_UNIQUING

Apparently `MDNode` uniquing used to be optional.  I suppose the
configure flag must have disappeared at some point.  Change the test so
it actually tests uniquing, and remove the check for
`ENABLE_MDNODE_UNIQUING`.

llvm-svn: 223617

9 years agoIR: Add missing tests for function-local metadata
Duncan P. N. Exon Smith [Sun, 7 Dec 2014 17:56:16 +0000 (17:56 +0000)]
IR: Add missing tests for function-local metadata

Add assembly and bitcode tests that I neglected to add in r223564 (IR:
Disallow complicated function-local metadata) and r223574 (IR: Disallow
function-local metadata attachments).

Found a couple of bugs:

  - The error message for function-local attachments gave the wrong line
    number -- it indicated the next token (typically on the next line)
    instead of the token that started the attachment.  Fixed.

  - Metadata arguments of the form `!{i32 0, i32 %v}` (or with the
    arguments reversed) fired an assertion in `ValueEnumerator` in LLVM
    v3.5, so I suppose this never really worked.  I suppose this was
    "fixed" by r223564.

(Thanks to dblaikie for pointing out my omission.)

Part of PR21532.

llvm-svn: 223616

9 years agoR600/SI: Disable VMEM and SMEM clauses by breaking them with S_NOP
Marek Olsak [Sun, 7 Dec 2014 17:17:43 +0000 (17:17 +0000)]
R600/SI: Disable VMEM and SMEM clauses by breaking them with S_NOP

This is only a workaround.

llvm-svn: 223615

9 years agoR600/SI: Set 20-bit immediate byte offset for SMRD on VI
Marek Olsak [Sun, 7 Dec 2014 17:17:38 +0000 (17:17 +0000)]
R600/SI: Set 20-bit immediate byte offset for SMRD on VI

llvm-svn: 223614

9 years ago[x86] Clean up the SSE1 test to use a slightly different pattern for
Chandler Carruth [Sun, 7 Dec 2014 17:16:00 +0000 (17:16 +0000)]
[x86] Clean up the SSE1 test to use a slightly different pattern for
matching offsets. I don't expect this to really matter, but its what the
latest incarnation of my script for maintaining these tests happens to
produce, and so its simpler for me if everything matches.

llvm-svn: 223613

9 years ago[x86] Switch a constant selection test to use positive assertions and to
Chandler Carruth [Sun, 7 Dec 2014 17:15:58 +0000 (17:15 +0000)]
[x86] Switch a constant selection test to use positive assertions and to
store to real pointers so that its clear that the right code is in fact
being generated.

llvm-svn: 223612

9 years ago[x86] Cleanup the combining vector shuffle tests a bit by merging
Chandler Carruth [Sun, 7 Dec 2014 17:15:56 +0000 (17:15 +0000)]
[x86] Cleanup the combining vector shuffle tests a bit by merging
identical checks for different SSE variants into a single block.

llvm-svn: 223611

9 years ago[x86] Clean up the shift lowering vector shuffle tests a bit using my
Chandler Carruth [Sun, 7 Dec 2014 17:15:53 +0000 (17:15 +0000)]
[x86] Clean up the shift lowering vector shuffle tests a bit using my
script. Notably this folds all the SSE cases together into a single
FileCheck block. It also adds a vex prefix.

llvm-svn: 223610

9 years agoclang-format: Don't merge lines with comments.
Daniel Jasper [Sun, 7 Dec 2014 16:44:49 +0000 (16:44 +0000)]
clang-format: Don't merge lines with comments.

Before:
  int f() { // comment return 42; }

After:
  int f() { // comment
    return 42;
  }

This fixes llvm.org/PR21769.

llvm-svn: 223609

9 years agoDrop unused 'docs' directory
Tobias Grosser [Sun, 7 Dec 2014 16:04:33 +0000 (16:04 +0000)]
Drop unused 'docs' directory

llvm-svn: 223608

9 years agoUpdate to the latest version of isl
Tobias Grosser [Sun, 7 Dec 2014 16:04:29 +0000 (16:04 +0000)]
Update to the latest version of isl

Isl now specifically marks modulo operations that are compared against zero.
They can be implemented with the C/LLVM remainder operation.

We also update a couple of test cases where the output of isl has slightly
changed.

llvm-svn: 223607

9 years agowww-todo: No need to directly integrate with the basic block vectorizer
Tobias Grosser [Sun, 7 Dec 2014 15:57:29 +0000 (15:57 +0000)]
www-todo: No need to directly integrate with the basic block vectorizer

llvm-svn: 223606

9 years agowww-todo: We assume accesses to fixed-size arrays are in-bounds
Tobias Grosser [Sun, 7 Dec 2014 15:56:21 +0000 (15:56 +0000)]
www-todo: We assume accesses to fixed-size arrays are in-bounds

llvm-svn: 223605

9 years agoR600/SI: Update instruction conversions for VI
Marek Olsak [Sun, 7 Dec 2014 12:19:03 +0000 (12:19 +0000)]
R600/SI: Update instruction conversions for VI

There are 3 changes:
- Convert 32-bit S_LSHL/LSHR/ASHR to their V_*REV variants for VI
- Lower RSQ_CLAMP for VI
- Don't generate MIN/MAX_LEGACY on VI

llvm-svn: 223604

9 years agoR600/SI: Add VI instructions
Marek Olsak [Sun, 7 Dec 2014 12:18:57 +0000 (12:18 +0000)]
R600/SI: Add VI instructions

llvm-svn: 223603

9 years agoR600/SI: Add SCC Defs/Uses to SOP1 and SOP2 opcodes
Marek Olsak [Sun, 7 Dec 2014 12:18:45 +0000 (12:18 +0000)]
R600/SI: Add SCC Defs/Uses to SOP1 and SOP2 opcodes

llvm-svn: 223602

9 years agoGive lit.cfg's threading options default values when not defined.
Eric Fiselier [Sun, 7 Dec 2014 08:52:19 +0000 (08:52 +0000)]
Give lit.cfg's threading options default values when not defined.

llvm-svn: 223601

9 years agoMark a couple of tests as XFAIL with older compilers.
Eric Fiselier [Sun, 7 Dec 2014 05:31:17 +0000 (05:31 +0000)]
Mark a couple of tests as XFAIL with older compilers.

llvm-svn: 223600

9 years agoConsolidate error reporting in lit.cfg
Eric Fiselier [Sun, 7 Dec 2014 04:28:50 +0000 (04:28 +0000)]
Consolidate error reporting in lit.cfg

llvm-svn: 223599

9 years agoRevert parts of r223594. Use DYLD_LIBRARY_PATH on OSX when running tests.
Eric Fiselier [Sun, 7 Dec 2014 00:34:23 +0000 (00:34 +0000)]
Revert parts of r223594. Use DYLD_LIBRARY_PATH on OSX when running tests.

llvm-svn: 223598

9 years agoFix apple clang detection in lit.cfg
Eric Fiselier [Sat, 6 Dec 2014 22:49:38 +0000 (22:49 +0000)]
Fix apple clang detection in lit.cfg

llvm-svn: 223597

9 years agoAdd some file content to avoid test failures on content-addressed file systems.
Richard Smith [Sat, 6 Dec 2014 22:12:07 +0000 (22:12 +0000)]
Add some file content to avoid test failures on content-addressed file systems.

llvm-svn: 223596

9 years agoAdd test file missed from r223561.
Richard Smith [Sat, 6 Dec 2014 22:11:06 +0000 (22:11 +0000)]
Add test file missed from r223561.

llvm-svn: 223595

9 years agoUnify and cleanup rpath handling in tests.
Eric Fiselier [Sat, 6 Dec 2014 22:08:51 +0000 (22:08 +0000)]
Unify and cleanup rpath handling in tests.

llvm-svn: 223594

9 years ago[libcxx] Add logic to probe compiler in tests.
Eric Fiselier [Sat, 6 Dec 2014 21:13:15 +0000 (21:13 +0000)]
[libcxx] Add logic to probe compiler in tests.

Summary:
This patch probes the cxx compiler used during testing by getting it to dump its predefined macros. Based on the value of these macros the compiler name and compiler name + version are added to the available features.

There are three compiler names:
- `clang`
- `apple-clang`
- `gcc`.

The available features added are equivalent to:
- `'%s' % compiler_name`
- `'%s-%s.%s' % compiler_name, major_version, minor_version`

This information can be used to XFAIL tests on different compilers / versions.

Reviewers: mclow.lists, danalbert, jroelofs

Reviewed By: jroelofs

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D6399

llvm-svn: 223593

9 years agoAdd support for building and testing libc++ without threads to CMake.
Eric Fiselier [Sat, 6 Dec 2014 21:02:58 +0000 (21:02 +0000)]
Add support for building and testing libc++ without threads to CMake.

Currently hacks must be used in to configure and build libc++ without threads
when using CMake. This patch adds CMake options to enable/disable building with
threads and a monotonic clock.

This patch also propagates the configuration information to lit so the tests
are properly configured as well.

llvm-svn: 223591

9 years agoImprove error message when _LIBCPP_HAS_NO_MONOTONIC_CLOCK is used improperly
Eric Fiselier [Sat, 6 Dec 2014 20:09:11 +0000 (20:09 +0000)]
Improve error message when _LIBCPP_HAS_NO_MONOTONIC_CLOCK is used improperly

llvm-svn: 223590

9 years agoTurn some DenseMaps that are only used for set operations into DenseSets.
Benjamin Kramer [Sat, 6 Dec 2014 19:22:54 +0000 (19:22 +0000)]
Turn some DenseMaps that are only used for set operations into DenseSets.

DenseSet has better memory efficiency now.

llvm-svn: 223589

9 years agoMake the DenseMap bucket type configurable and use a smaller bucket for DenseSet.
Benjamin Kramer [Sat, 6 Dec 2014 19:22:44 +0000 (19:22 +0000)]
Make the DenseMap bucket type configurable and use a smaller bucket for DenseSet.

DenseSet used to be implemented as DenseMap<Key, char>, which usually doubled
the memory footprint of the map. Now we use a compressed set so the second
element uses no memory at all. This required some surgery on DenseMap as
all accesses to the bucket now have to go through methods; this should
have no impact on the behavior of DenseMap though. The new default bucket
type for DenseMap is a slightly extended std::pair as we expose it through
DenseMap's iterator and don't want to break any existing users.

llvm-svn: 223588

9 years agoReapply "LLVMContext: Store APInt/APFloat directly into the ConstantInt/FP DenseMaps."
Benjamin Kramer [Sat, 6 Dec 2014 13:12:56 +0000 (13:12 +0000)]
Reapply "LLVMContext: Store APInt/APFloat directly into the ConstantInt/FP DenseMaps."

This reapplies r223478 with a fix for 32 bit targets.

llvm-svn: 223586

9 years agoConstantFold: Don't optimize comparisons with weak linkage objects
David Majnemer [Sat, 6 Dec 2014 11:58:33 +0000 (11:58 +0000)]
ConstantFold: Don't optimize comparisons with weak linkage objects

Consider:
void f() {}
void __attribute__((weak)) g() {}
bool b = &f != &g;

It's possble for g to resolve to f if --defsym=g=f is passed on to the
linker.

llvm-svn: 223585

9 years agoI didn't intend to commit this change.
David Majnemer [Sat, 6 Dec 2014 10:52:32 +0000 (10:52 +0000)]
I didn't intend to commit this change.

llvm-svn: 223584

9 years agoInstSimplify: Optimize away useless unsigned comparisons
David Majnemer [Sat, 6 Dec 2014 10:51:40 +0000 (10:51 +0000)]
InstSimplify: Optimize away useless unsigned comparisons

Code like X < Y && Y == 0 should always be folded away to false.

llvm-svn: 223583

9 years agoReformat.
NAKAMURA Takumi [Sat, 6 Dec 2014 05:57:06 +0000 (05:57 +0000)]
Reformat.

llvm-svn: 223580

9 years agoR600/SI: Restore PrivateGlobalPrefix to the default ELF value of ".L"
Tom Stellard [Sat, 6 Dec 2014 05:34:34 +0000 (05:34 +0000)]
R600/SI: Restore PrivateGlobalPrefix to the default ELF value of ".L"

This was changed in r223323.

llvm-svn: 223579

9 years agoRename a couple of preprocessor symbols to be more descriptive. NFC.
Paul Robinson [Sat, 6 Dec 2014 05:06:37 +0000 (05:06 +0000)]
Rename a couple of preprocessor symbols to be more descriptive. NFC.
Review feedback from recent changes to GetSVN.cmake.

llvm-svn: 223578

9 years ago[modules] If we import a module, and we've seen a module map that describes the
Richard Smith [Sat, 6 Dec 2014 03:21:08 +0000 (03:21 +0000)]
[modules] If we import a module, and we've seen a module map that describes the
module, use the path from the module map file in preference to the path from
the .pcm file when resolving relative paths in the .pcm file. This allows
diagnostics (and .d output) to give relative paths if the module was found via
a relative path.

llvm-svn: 223577

9 years agoAvoid angle brackets in comment. [-Wdocumentation-html]
NAKAMURA Takumi [Sat, 6 Dec 2014 03:11:46 +0000 (03:11 +0000)]
Avoid angle brackets in comment. [-Wdocumentation-html]

llvm-svn: 223576

9 years agoFixed an unfortunate reversed conditional that
Sean Callanan [Sat, 6 Dec 2014 02:31:49 +0000 (02:31 +0000)]
Fixed an unfortunate reversed conditional that
resulted in hard-to-track-down crashes.  Sigh.

llvm-svn: 223575

9 years agoIR: Disallow function-local metadata attachments
Duncan P. N. Exon Smith [Sat, 6 Dec 2014 02:29:44 +0000 (02:29 +0000)]
IR: Disallow function-local metadata attachments

Metadata attachments to instructions cannot be function-local.

This is part of PR21532.

llvm-svn: 223574

9 years agoLLVMInstrumentation requires MC since r223532.
NAKAMURA Takumi [Sat, 6 Dec 2014 02:22:11 +0000 (02:22 +0000)]
LLVMInstrumentation requires MC since r223532.

llvm-svn: 223573

9 years agoFix typo
Matt Arsenault [Sat, 6 Dec 2014 02:14:41 +0000 (02:14 +0000)]
Fix typo

llvm-svn: 223572

9 years agoAdd a proper triple to switch-jump-table.ll
Hans Wennborg [Sat, 6 Dec 2014 02:08:16 +0000 (02:08 +0000)]
Add a proper triple to switch-jump-table.ll

llvm-svn: 223571

9 years agollvm/test/CodeGen/X86/switch-jump-table.ll: Add explicit triple. Local labels have...
NAKAMURA Takumi [Sat, 6 Dec 2014 02:03:49 +0000 (02:03 +0000)]
llvm/test/CodeGen/X86/switch-jump-table.ll: Add explicit triple. Local labels have a prefix "." for targeting i686-cygming.

llvm-svn: 223570

9 years agoImprovements to FastDemangler to correct parsing of <local-name> encodings for string...
Kate Stone [Sat, 6 Dec 2014 01:42:41 +0000 (01:42 +0000)]
Improvements to FastDemangler to correct parsing of <local-name> encodings for string literal and parameter/entity cases.  Patch courtesy of slydiman.

llvm-svn: 223569

9 years agoReverting r223548 which broke running in the shell on OS X.
Jim Ingham [Sat, 6 Dec 2014 01:41:10 +0000 (01:41 +0000)]
Reverting r223548 which broke running in the shell on OS X.

llvm-svn: 223568

9 years ago[X86] Refactor PMOV[SZ]Xrm to add missing AVX2 patterns.
Ahmed Bougacha [Sat, 6 Dec 2014 01:31:07 +0000 (01:31 +0000)]
[X86] Refactor PMOV[SZ]Xrm to add missing AVX2 patterns.

Most patterns will go away once the extload legalization changes land.

Differential Revision: http://reviews.llvm.org/D6125

llvm-svn: 223567

9 years agoSelectionDAG switch lowering: Replace unreachable default with most popular case.
Hans Wennborg [Sat, 6 Dec 2014 01:28:50 +0000 (01:28 +0000)]
SelectionDAG switch lowering: Replace unreachable default with most popular case.

This can significantly reduce the size of the switch, allowing for more
efficient lowering.

I also worked with the idea of exploiting unreachable defaults by
omitting the range check for jump tables, but always ended up with a
non-neglible binary size increase. It might be worth looking into some more.

SimplifyCFG currently does this transformation, but I'm working towards changing
that so we can optimize harder based on unreachable defaults.

Differential Revision: http://reviews.llvm.org/D6510

llvm-svn: 223566

9 years agoAdd the ability to set breakpoints with conditions, commands, etc,
Jim Ingham [Sat, 6 Dec 2014 01:28:03 +0000 (01:28 +0000)]
Add the ability to set breakpoints with conditions, commands, etc,
in the "dummy-target".  The dummy target breakpoints prime all future
targets.  Breakpoints set before any target is created (e.g. breakpoints
in ~/.lldbinit) automatically get set in the dummy target.  You can also
list, add & delete breakpoints from the dummy target using the "-D" flag,
which is supported by most of the breakpoint commands.

This removes a long-standing wart in lldb...

<rdar://problem/10881487>

llvm-svn: 223565

9 years agoIR: Disallow complicated function-local metadata
Duncan P. N. Exon Smith [Sat, 6 Dec 2014 01:26:49 +0000 (01:26 +0000)]
IR: Disallow complicated function-local metadata

Disallow complex types of function-local metadata.  The only valid
function-local metadata is an `MDNode` whose sole argument is a
non-metadata function-local value.

Part of PR21532.

llvm-svn: 223564

9 years agoNo memcpy for copy ctor with -fsanitize-address-field-padding=1
Kostya Serebryany [Sat, 6 Dec 2014 01:23:08 +0000 (01:23 +0000)]
No memcpy for copy ctor with -fsanitize-address-field-padding=1

Summary:
When -fsanitize-address-field-padding=1 is present
don't emit memcpy for copy constructor.
Thanks Nico for the extra test case.

Test Plan: regression tests

Reviewers: thakis, rsmith

Reviewed By: rsmith

Subscribers: rsmith, cfe-commits

Differential Revision: http://reviews.llvm.org/D6515

llvm-svn: 223563

9 years agoFix for xunit output to work around issue in Jenkins when tests are at the root level
Chris Matthews [Sat, 6 Dec 2014 01:13:49 +0000 (01:13 +0000)]
Fix for xunit output to work around issue in Jenkins when tests are at the root level

llvm-svn: 223562

9 years agoPR21217: Slightly more eagerly load -fmodule-map-file= files and provide
Richard Smith [Sat, 6 Dec 2014 01:13:41 +0000 (01:13 +0000)]
PR21217: Slightly more eagerly load -fmodule-map-file= files and provide
diagnostics if they don't exist. Based on a patch by John Thompson!

llvm-svn: 223561

9 years agoNow that we get types from modules, we occasionally
Sean Callanan [Sat, 6 Dec 2014 01:03:30 +0000 (01:03 +0000)]
Now that we get types from modules, we occasionally
encounter clang::ExternalASTSources that are not instances
of ClangExternalASTSourceCommon.  We used to blithely
assume that all are, and so we could use static_cast<>.
That's no longer the case, so we have to have these AST
sources register themselves.

llvm-svn: 223560

9 years agoFix a type (MAX_PATH instead of PATH_MAX) and remove an unused variable.
Jim Ingham [Sat, 6 Dec 2014 01:03:17 +0000 (01:03 +0000)]
Fix a type (MAX_PATH instead of PATH_MAX) and remove an unused variable.

llvm-svn: 223559

9 years agoAdd new-lines after module compiler errors so
Sean Callanan [Sat, 6 Dec 2014 00:56:43 +0000 (00:56 +0000)]
Add new-lines after module compiler errors so
they are readable.

llvm-svn: 223557

9 years agoUtils: Style cleanups, NFC
Duncan P. N. Exon Smith [Sat, 6 Dec 2014 00:48:17 +0000 (00:48 +0000)]
Utils: Style cleanups, NFC

llvm-svn: 223556

9 years agoUtils: Avoid RAUW on metadata in CloneFunction()
Duncan P. N. Exon Smith [Sat, 6 Dec 2014 00:48:13 +0000 (00:48 +0000)]
Utils: Avoid RAUW on metadata in CloneFunction()

llvm-svn: 223555

9 years agoCanonicalize multiplies by looking at whether the operands have any constants themsel...
Nick Lewycky [Sat, 6 Dec 2014 00:45:50 +0000 (00:45 +0000)]
Canonicalize multiplies by looking at whether the operands have any constants themselves. Patch by Tim Murray!

llvm-svn: 223554

9 years ago[TEST-COMMIT] As per Developer Policy, Added a blank line.
Neeraj Badlani [Sat, 6 Dec 2014 00:38:39 +0000 (00:38 +0000)]
[TEST-COMMIT] As per Developer Policy, Added a blank line.

llvm-svn: 223553

9 years agoAArch64: use explicit MVT::i64 when creating EXTRACT_SUBVECTOR nodes.
Tim Northover [Sat, 6 Dec 2014 00:33:37 +0000 (00:33 +0000)]
AArch64: use explicit MVT::i64 when creating EXTRACT_SUBVECTOR nodes.

All our patterns use MVT::i64, but the ISelLowering nodes were inconsistent in
their choice.

No functional change.

llvm-svn: 223551