OSDN Git Service

android-x86/external-llvm.git
8 years agoRemoving whitespace from test commit rL273447
Jason Henline [Wed, 22 Jun 2016 18:01:11 +0000 (18:01 +0000)]
Removing whitespace from test commit rL273447

Undoing the trivial change I introduced in rL273447.

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

8 years agoAMDGPU: Make FrameLowering stack alignment 16
Matt Arsenault [Wed, 22 Jun 2016 17:47:39 +0000 (17:47 +0000)]
AMDGPU: Make FrameLowering stack alignment 16

We don't need it to be that high. The natural alignment
for a single workitem's stack is 16.

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

8 years agoAdd whitespace to check commit access
Jason Henline [Wed, 22 Jun 2016 17:40:02 +0000 (17:40 +0000)]
Add whitespace to check commit access

No functional changes. Just adding whitespace in a comment in order to
check that I am able to push a commit to the repo.

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

8 years ago[codeview] Fix trivial bug in OneMethodRecord::isIntroducingVirtual
Reid Kleckner [Wed, 22 Jun 2016 17:32:59 +0000 (17:32 +0000)]
[codeview] Fix trivial bug in OneMethodRecord::isIntroducingVirtual

These should be equality comparisons. Fixes assertions while
self-hosting clang with codeview debug info.

Ultimately this is going to be covered by real tests for virtual method
emission, so I'm not adding a "don't crash on this input" test that I'll
remove soon afterwards.

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

8 years ago[asan] Do not instrument accesses to profiling globals
Vedant Kumar [Wed, 22 Jun 2016 17:30:58 +0000 (17:30 +0000)]
[asan] Do not instrument accesses to profiling globals

It's only useful to asan-itize profiling globals while debugging llvm's
profiling instrumentation passes. Enabling asan along with instrprof or
gcov instrumentation shouldn't incur extra overhead.

This patch is in the same spirit as r264805 and r273202, which disabled
tsan instrumentation of instrprof/gcov globals.

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

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

8 years ago[codeview] Defer emission of all referenced complete records
Reid Kleckner [Wed, 22 Jun 2016 17:15:28 +0000 (17:15 +0000)]
[codeview] Defer emission of all referenced complete records

This is the motivating example:
  struct B { int b; };
  struct A { B *b; };
  int f(A *p) { return p->b->b; }

Clang emits complete types for both A and B because they are required to
be complete, but our CodeView emission would only emit forward
declarations of A and B. This was a consequence of the fact that the A*
type must reference the forward declaration of A, which doesn't
reference B at all.

We can't eagerly emit complete definitions of A and B when we request
the forward declaration's type index because of recursive types like
linked lists. If we did that, our stack usage could get out of hand, and
it would be possible to lower a type while attempting to lower a type,
and we would need to double check if our type is already present in the
TypeIndexMap after all recursive getTypeIndex calls.

Instead, defer complete type emission until after all type lowering has
completed. This ensures that all referenced complete types are emitted,
and that type lowering is not re-entrant.

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

8 years ago[BFI]: NFC refactoring
Xinliang David Li [Wed, 22 Jun 2016 17:12:12 +0000 (17:12 +0000)]
[BFI]: NFC refactoring

move getBlockProfileCount implementation to the
base class so that MBFI can share too.

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

8 years ago[SystemZ] Recognize RISBG opportunities involving a truncate
Zhan Jun Liau [Wed, 22 Jun 2016 16:16:27 +0000 (16:16 +0000)]
[SystemZ] Recognize RISBG opportunities involving a truncate

Summary:
Recognize RISBG opportunities where the end result is narrower than the
original input - where a truncate separates the shift/and operations.

The motivating case is some code in postgres which looks like:

srlg %r2, %r0, 11
nilh %r2, 255

Reviewers: uweigand

Author: RolandF

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

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

8 years ago[Hexagon] Handle expansion of cmpxchg
Krzysztof Parzyszek [Wed, 22 Jun 2016 16:07:10 +0000 (16:07 +0000)]
[Hexagon] Handle expansion of cmpxchg

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

8 years ago[codeview] Remove ClassInfoMap
Reid Kleckner [Wed, 22 Jun 2016 16:06:42 +0000 (16:06 +0000)]
[codeview] Remove ClassInfoMap

From a design perspective, complete record type emission should not
depend on information from other complete record types.

Currently this map is unused, and needlessly accumulates data throughout
compilation.

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

8 years ago[MBFI]: show branch probability in DOT graph
Xinliang David Li [Wed, 22 Jun 2016 16:04:51 +0000 (16:04 +0000)]
[MBFI]: show branch probability in DOT graph

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

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

8 years agollvm-ar: reduce some duplication, NFC
Saleem Abdulrasool [Wed, 22 Jun 2016 15:44:25 +0000 (15:44 +0000)]
llvm-ar: reduce some duplication, NFC

Improve the previous change by using a local function to reduce the duplication
of the object file scanning.  NFC.

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

8 years agoUpgrade old memset/memcpy signatures (without isVolatile argument) in tests
Artur Pilipenko [Wed, 22 Jun 2016 15:16:06 +0000 (15:16 +0000)]
Upgrade old memset/memcpy signatures (without isVolatile argument) in tests

We no longer have corresponding code in autoupgrade and the vast majority of the tests were fixed long time ago. Fix the remaining few. One of the verifier test cases is marked as XFAIL because it was passing only because the signature was incorrect.

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

8 years agoNFC. Move Verifier::verifyIntrinsicType to Intrinsics.h
Artur Pilipenko [Wed, 22 Jun 2016 14:56:33 +0000 (14:56 +0000)]
NFC. Move Verifier::verifyIntrinsicType to Intrinsics.h

Move Verifier::verifyIntrinsicType to Intrinsics::matchIntrinsicsType. Will be used to accumulate overloaded types of a given intrinsic by the upcoming patch to fix intrinsics names when overloaded types are renamed.

Reviewed By: reames

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

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

8 years ago[InstSimplify] add ashr tests including vector types
Sanjay Patel [Wed, 22 Jun 2016 14:18:04 +0000 (14:18 +0000)]
[InstSimplify] add ashr tests including vector types

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

8 years ago[SLPVectorizer][X86] Added ceil/floor/nearbyint/rint/trunc vectorization tests
Simon Pilgrim [Wed, 22 Jun 2016 14:07:46 +0000 (14:07 +0000)]
[SLPVectorizer][X86] Added ceil/floor/nearbyint/rint/trunc vectorization tests

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

8 years ago[InstSimplify] regenerate checks
Sanjay Patel [Wed, 22 Jun 2016 14:00:16 +0000 (14:00 +0000)]
[InstSimplify] regenerate checks

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

8 years ago[llvm-readobj] - Teach llvm-readobj to print dependencies of SHT_GNU_verdef and refac...
George Rimar [Wed, 22 Jun 2016 13:43:38 +0000 (13:43 +0000)]
[llvm-readobj] - Teach llvm-readobj to print dependencies of SHT_GNU_verdef and refactor dumping method.

This patch changes single method of llvm-readobj.
It teaches SHT_GNU_verdef dumper to print version dependencies,
also it removes few fields from output that can be dumped with other keys
and slightly refactors code.
Testcase was also modified to match the changes.
Change is required for testcases of upcoming lld patches.

Differential revision: http://reviews.llvm.org/D21552

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

8 years agoRegenerated test
Simon Pilgrim [Wed, 22 Jun 2016 12:58:15 +0000 (12:58 +0000)]
Regenerated test

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

8 years ago[SDAG] Remove FixedArgs parameter from CallLoweringInfo::setCallee
Krzysztof Parzyszek [Wed, 22 Jun 2016 12:54:25 +0000 (12:54 +0000)]
[SDAG] Remove FixedArgs parameter from CallLoweringInfo::setCallee

The setCallee function will set the number of fixed arguments based
on the size of the argument list. The FixedArgs parameter was often
explicitly set to 0, leading to a lack of consistent value for non-
vararg functions.

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

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

8 years agoDelete more dead code.
Rafael Espindola [Wed, 22 Jun 2016 12:44:16 +0000 (12:44 +0000)]
Delete more dead code.

Found by gcc 6.

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

8 years ago[LTO] Move UpdateCompilerUsed.h from lib/ to include/
Davide Italiano [Wed, 22 Jun 2016 04:52:43 +0000 (04:52 +0000)]
[LTO] Move UpdateCompilerUsed.h from lib/ to include/

I plan to use it in lld soon.

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

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

8 years ago[X86] Remove GCC builtins from masked integer cmp and ucmp instrinsics so we can...
Craig Topper [Wed, 22 Jun 2016 04:47:42 +0000 (04:47 +0000)]
[X86] Remove GCC builtins from masked integer cmp and ucmp instrinsics so we can emit native IR in clang.

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

8 years agollvm-ar: be more clever about default format
Saleem Abdulrasool [Wed, 22 Jun 2016 04:03:28 +0000 (04:03 +0000)]
llvm-ar: be more clever about default format

Try to be more clever about selecting the default format.  When an existing
archive is used, use the type of the archive to determine the format.  When
existing members are present, use the first member's format to determine the
format to use.  If we are creating an empty archive (MRI mode) or are adding
non-object members, default to the current behaviour of using the host type due
to the lack of a better alternative.  This aids in cross-compilation on Darwin
to non-Darwin platforms which rely on GNU format archives.

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

8 years ago[OCaml] Add functions for accessing metadata nodes.
Peter Zotov [Wed, 22 Jun 2016 03:30:24 +0000 (03:30 +0000)]
[OCaml] Add functions for accessing metadata nodes.

Patch by Xinyu Zhuang.

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

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

8 years agoAdd an option to enable MBFI dot viewer for a given function
Xinliang David Li [Wed, 22 Jun 2016 02:12:54 +0000 (02:12 +0000)]
Add an option to enable MBFI dot viewer for a given function

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

8 years agoAMDGPU: Fix gcc warnings
Matt Arsenault [Wed, 22 Jun 2016 01:53:49 +0000 (01:53 +0000)]
AMDGPU: Fix gcc warnings

Mostly removing dead code. Apparently gcc's warning
for unused functions is better

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

8 years ago[codeview] Improve names of types in scopes and member function ids
Reid Kleckner [Wed, 22 Jun 2016 01:32:56 +0000 (01:32 +0000)]
[codeview] Improve names of types in scopes and member function ids

We now include namespace scope info in LF_FUNC_ID records and we emit
LF_MFUNC_ID records for member functions as we should.

Class names are now fully qualified, which is what MSVC does.

Add a little bit of scaffolding to handle ThisAdjustment when it arrives
in DISubprogram.

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

8 years ago[codeview] Add missing test from r273294
Reid Kleckner [Wed, 22 Jun 2016 01:17:05 +0000 (01:17 +0000)]
[codeview] Add missing test from r273294

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

8 years ago[asan] Do not instrument pointers with address space attributes
Anna Zaks [Wed, 22 Jun 2016 00:15:52 +0000 (00:15 +0000)]
[asan] Do not instrument pointers with address space attributes

Do not instrument pointers with address space attributes since we cannot track
them anyway. Instrumenting them results in false positives in ASan and a
compiler crash in TSan. (The compiler should not crash in any case, but that's
a different problem.)

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

8 years agoIR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue...
Peter Collingbourne [Tue, 21 Jun 2016 23:42:48 +0000 (23:42 +0000)]
IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals.

This change is motivated by an upcoming change to the metadata representation
used for CFI. The indirect function call checker needs type information for
external function declarations in order to correctly generate jump table
entries for such declarations. We currently associate such type information
with declarations using a global metadata node, but I plan [1] to move all
such metadata to global object attachments.

In bitcode, metadata attachments for function declarations appear in the
global metadata block. This seems reasonable to me because I expect metadata
attachments on declarations to be uncommon. In the long term I'd also expect
this to be the case for CFI, because we'd want to use some specialized bitcode
format for this metadata that could be read as part of the ThinLTO thin-link
phase, which would mean that it would not appear in the global metadata block.

To solve the lazy loaded metadata issue I was seeing with D20147, I use the
same bitcode representation for metadata attachments for global variables as I
do for function declarations. Since there's a use case for metadata attachments
in the global metadata block, we might as well use that representation for
global variables as well, at least until we have a mechanism for lazy loading
global variables.

In the assembly format, the metadata attachments appear after the "declare"
keyword in order to avoid a parsing ambiguity.

[1] http://lists.llvm.org/pipermail/llvm-dev/2016-June/100462.html

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

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

8 years agoClang format change /NFC
Xinliang David Li [Tue, 21 Jun 2016 23:36:12 +0000 (23:36 +0000)]
Clang format change /NFC

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

8 years ago[build] Fixed build break for OCaml bindings.
Artem Belevich [Tue, 21 Jun 2016 23:10:37 +0000 (23:10 +0000)]
[build] Fixed build break for OCaml bindings.

After r273302 LLVM_SYSTEM_LIBS may have entries that already have
-l prefix and we need to deal with that.

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

8 years agoMake DeadMachineInstructionElim preserve CFG
Matt Arsenault [Tue, 21 Jun 2016 23:01:17 +0000 (23:01 +0000)]
Make DeadMachineInstructionElim preserve CFG

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

8 years ago[Kryo] Enable loop prefetcher.
Haicheng Wu [Tue, 21 Jun 2016 22:47:56 +0000 (22:47 +0000)]
[Kryo] Enable loop prefetcher.

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

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

8 years ago[Coverage] Clarify ownership of a MemoryBuffer in the reader (NFC)
Vedant Kumar [Tue, 21 Jun 2016 22:22:33 +0000 (22:22 +0000)]
[Coverage] Clarify ownership of a MemoryBuffer in the reader (NFC)

Pass a `MemoryBuffer &` to BinaryCoverageReader::create() instead of a
`std::unique_ptr<MemoryBuffer> &`. This makes it easier to reason about
the ownership of the buffer at a glance.

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

8 years agoUpdate llvm-obdump(1) to print FAT_MAGIC_64 for Darwin’s 64-bit universal files
Kevin Enderby [Tue, 21 Jun 2016 21:55:01 +0000 (21:55 +0000)]
Update llvm-obdump(1) to print FAT_MAGIC_64 for Darwin’s 64-bit universal files
with the -macho and -universal-headers flags.

Just a follow on to r273207, I missed updating the printing of the fat magic
number when the universal file is a 64-bit universal file.

rdar://26899493

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

8 years agoDelete more dead code.
Rafael Espindola [Tue, 21 Jun 2016 21:51:41 +0000 (21:51 +0000)]
Delete more dead code.

Found by gcc 6.

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

8 years agoAMDGPU: Remove gcc builtin names from workitem intrinsics
Jan Vesely [Tue, 21 Jun 2016 20:46:22 +0000 (20:46 +0000)]
AMDGPU: Remove gcc builtin names from workitem intrinsics

We'll need to emit these manually in clang to add range metadata

Reviewers: arsenm

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

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

8 years agoAMDGPU: Add implicitarg.ptr intrinsic.
Jan Vesely [Tue, 21 Jun 2016 20:46:20 +0000 (20:46 +0000)]
AMDGPU: Add implicitarg.ptr intrinsic.

Points to the start of implicit arguments (appended after explicit arguments)

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

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

8 years ago[X86] Make arithmetic operations cost model test saner. NFC.
Michael Kuperstein [Tue, 21 Jun 2016 20:41:40 +0000 (20:41 +0000)]
[X86] Make arithmetic operations cost model test saner. NFC.

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

8 years ago[NVPTX] Improve lowering of byval args of device functions.
Artem Belevich [Tue, 21 Jun 2016 20:30:26 +0000 (20:30 +0000)]
[NVPTX] Improve lowering of byval args of device functions.

Avoid unnecessary spills of such vars to local space on SASS level and
pointer space conversion.

Instead, make a local copy with appropriate addrspacecasts and let
LLVM optimize them away when possible.

This allows loading value of the argument using [symbol+offset]
instead of converting argument to general space pointer and using it
for indexing (which also implicitly converts param space pointer to
local space one on SASS level and triggers copying of argument into
local space in the process).

This reduces call overhead, uses less registers and reduces overall
SASS size by 2-4%.

Differential Review: http://reviews.llvm.org/D21421

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

8 years agoAdd back some dead code.
Rafael Espindola [Tue, 21 Jun 2016 20:09:22 +0000 (20:09 +0000)]
Add back some dead code.

It was there just to avoid warnings. Add a LLVM_ATTRIBUTE_UNUSED
attribute so that it doesn't produce warnings with gcc 6.

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

8 years agoDelete some dead code.
Rafael Espindola [Tue, 21 Jun 2016 19:48:12 +0000 (19:48 +0000)]
Delete some dead code.

Found by gcc 6.

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

8 years ago[build] Make sure to link main executable with pthreads
Artem Belevich [Tue, 21 Jun 2016 19:34:40 +0000 (19:34 +0000)]
[build] Make sure to link main executable with pthreads

Otherwise it gets linked in by one of the dependencies of shared
libraries which may be too late and we end up with weird crashes in
std::call_once().

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

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

8 years agoFix PR28219: Use profile summary from reader and not compute it
Easwaran Raman [Tue, 21 Jun 2016 19:29:49 +0000 (19:29 +0000)]
Fix PR28219: Use profile summary from reader and not compute it

Differentiaal revision: http://reviews.llvm.org/D21546

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

8 years agoAdd MemoryAccess creation and PHI creation APIs to MemorySSA
Daniel Berlin [Tue, 21 Jun 2016 18:39:20 +0000 (18:39 +0000)]
Add MemoryAccess creation and PHI creation APIs to MemorySSA

Reviewers: george.burgess.iv, gberry, hfinkel

Subscribers: llvm-commits

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

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

8 years ago[codeview] Add support for splitting field list records over 64KB
Reid Kleckner [Tue, 21 Jun 2016 18:33:01 +0000 (18:33 +0000)]
[codeview] Add support for splitting field list records over 64KB

The basic structure is that once a list record goes over 64K, the last
subrecord of the list is an LF_INDEX record that refers to the next
record. Because the type record graph must be toplogically sorted, this
means we have to emit them in reverse order. We build the type record in
order of declaration, so this means that if we don't want extra copies,
we need to detect when we were about to split a record, and leave space
for a continuation subrecord that will point to the eventual split
top-level record.

Also adds dumping support for these records.

Next we should make sure that large method overload lists work properly.

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

8 years agollvm-ar: correct typo
Saleem Abdulrasool [Tue, 21 Jun 2016 17:19:28 +0000 (17:19 +0000)]
llvm-ar: correct typo

Default was misspelt.  NFC.

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

8 years ago[AArch64] Fix merge-store.ll regression test after r273271
Silviu Baranga [Tue, 21 Jun 2016 17:15:49 +0000 (17:15 +0000)]
[AArch64] Fix merge-store.ll regression test after r273271

r273271 changed the RUN line of the regression test to use
-march=cyclone instead of -mtriple=aarch64-none-none.

This caused a change in the output syntax for the ext
instruction, causing the test to fail. Change this test
back to using -mtriple=aarch64-none-none.

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

8 years agoFix typo, NFC
Krzysztof Parzyszek [Tue, 21 Jun 2016 16:16:52 +0000 (16:16 +0000)]
Fix typo, NFC

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

8 years ago[StackProtector] Fix computation of GSCookieOffset and EHCookieOffset with SEH4
Etienne Bergeron [Tue, 21 Jun 2016 15:58:55 +0000 (15:58 +0000)]
[StackProtector] Fix computation of GSCookieOffset and EHCookieOffset with SEH4

Summary:
Fix the computation of the offsets present in the scopetable when using the
SEH (__except_handler4).

This patch added an intrinsic to track the position of the allocation on the
stack of the EHGuard. This position is needed when producing the ScopeTable.

```
    struct _EH4_SCOPETABLE {
        DWORD GSCookieOffset;
        DWORD GSCookieXOROffset;
        DWORD EHCookieOffset;
        DWORD EHCookieXOROffset;
        _EH4_SCOPETABLE_RECORD ScopeRecord[1];
    };

    struct _EH4_SCOPETABLE_RECORD {
        DWORD EnclosingLevel;
        long (*FilterFunc)();
            union {
            void (*HandlerAddress)();
            void (*FinallyFunc)();
        };
    };
```

The code to generate the EHCookie is added in `X86WinEHState.cpp`.
Which is adding these instructions when using SEH4.

```
Lfunc_begin0:
# BB#0:                                 # %entry
pushl %ebp
movl %esp, %ebp
pushl %ebx
pushl %edi
pushl %esi
subl $28, %esp
movl %ebp, %eax                <<-- Loading FramePtr
movl %esp, -36(%ebp)
movl $-2, -16(%ebp)
movl $L__ehtable$use_except_handler4_ssp, %ecx
xorl ___security_cookie, %ecx
movl %ecx, -20(%ebp)
xorl ___security_cookie, %eax  <<-- XOR FramePtr and Cookie
movl %eax, -40(%ebp)           <<-- Storing EHGuard
leal -28(%ebp), %eax
movl $__except_handler4, -24(%ebp)
movl %fs:0, %ecx
movl %ecx, -28(%ebp)
movl %eax, %fs:0
movl $0, -16(%ebp)
calll _may_throw_or_crash
LBB1_1:                                 # %cont
movl -28(%ebp), %eax
movl %eax, %fs:0
addl $28, %esp
popl %esi
popl %edi
popl %ebx
popl %ebp
retl

```

And the corresponding offset is computed:
```
Luse_except_handler4_ssp$parent_frame_offset = -36
.p2align 2
L__ehtable$use_except_handler4_ssp:
.long -2                      # GSCookieOffset
.long 0                       # GSCookieXOROffset
.long -40                     # EHCookieOffset    <<----
.long 0                       # EHCookieXOROffset
.long -2                      # ToState
.long _catchall_filt          # FilterFunction
.long LBB1_2                  # ExceptionHandler

```

Clang is not yet producing function using SEH4, but it's a work in progress.
This patch is a step toward having a valid implementation of SEH4.
Unfortunately, it is not yet fully working. The EH registration block is not
allocated at the right offset on the stack.

Reviewers: rnk, majnemer

Subscribers: llvm-commits, chrisha

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

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

8 years ago[AArch64] Change the preferred alignment for char and short to word alignment
Evandro Menezes [Tue, 21 Jun 2016 15:55:18 +0000 (15:55 +0000)]
[AArch64] Change the preferred alignment for char and short to word alignment

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

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

8 years ago[AArch64] Restore codegen for AArch64 Cortex-A72/A73 after NFCI
Silviu Baranga [Tue, 21 Jun 2016 15:53:54 +0000 (15:53 +0000)]
[AArch64] Restore codegen for AArch64 Cortex-A72/A73 after NFCI

Summary:
Code generation for Cortex-A72/Cortex-A73 was accidentally changed
by r271555, which was a NFCI. The isCortexA57() predicate was not true
for Cortex-A72/Cortex-A73 before r271555 (since it was checking the CPU
string). Because Cortex-A72/Cortex-A73 inherit all features from Cortex-A57,
all decisions previously guarded by isCortexA57() are now taken.

This change restores the behaviour before r271555 by adding separate
ProcA72/ProcA73, which have the required features to preserve code
generation.

Reviewers: kristof.beyls, aadg, mcrosier, rengolin

Subscribers: mcrosier, llvm-commits, aemerson, t.p.northover, MatzeB, rengolin

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

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

8 years agofix indentation
Etienne Bergeron [Tue, 21 Jun 2016 15:21:04 +0000 (15:21 +0000)]
fix indentation

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

8 years ago[AArch64] Switch regression tests to test features not CPUs
Silviu Baranga [Tue, 21 Jun 2016 15:16:34 +0000 (15:16 +0000)]
[AArch64] Switch regression tests to test features not CPUs

Summary:
We have switched to using features for all heuristics, but
the tests for these are still using -mcpu, which means we
are not directly testing the features.

This converts at least some of the existing regression tests
to use the new features.

This still leaves the following features untested:

merge-narrow-ld
predictable-select-expensive
alternate-sextload-cvt-f32-pattern
disable-latency-sched-heuristic

Reviewers: mcrosier, t.p.northover, rengolin

Subscribers: MatzeB, aemerson, llvm-commits, rengolin

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

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

8 years agoThis is part of the effort for asan to support Windows 64 bit.
Etienne Bergeron [Tue, 21 Jun 2016 15:07:29 +0000 (15:07 +0000)]
This is part of the effort for asan to support Windows 64 bit.
The large offset is being tested on Windows 10 (which has larger usable
virtual address space than Windows 8 or earlier)

Patch by:  Wei Wang
Differential Revision: http://reviews.llvm.org/D21523

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

8 years ago[codeview] Fix DenseMap pointer invalidation bug
Reid Kleckner [Tue, 21 Jun 2016 14:56:24 +0000 (14:56 +0000)]
[codeview] Fix DenseMap pointer invalidation bug

When you have a map holding a unique_ptr, hold a reference to the raw
pointer instead of the unique pointer. The unique_ptr will be moved on
rehash.

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

8 years agoStrip trailing whitespace
Simon Pilgrim [Tue, 21 Jun 2016 14:37:39 +0000 (14:37 +0000)]
Strip trailing whitespace

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

8 years agoSwitch to using an API that handles non-ASCII paths appropriately on Windows.
Aaron Ballman [Tue, 21 Jun 2016 14:24:48 +0000 (14:24 +0000)]
Switch to using an API that handles non-ASCII paths appropriately on Windows.

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

8 years agoDefine a isPositionIndependent helper for ARMAsmPrinter. NFC.
Rafael Espindola [Tue, 21 Jun 2016 14:21:53 +0000 (14:21 +0000)]
Define a isPositionIndependent helper for ARMAsmPrinter. NFC.

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

8 years ago[arm+x86] Make GNU variants behave like GNU w.r.t combining sin+cos into sincos.
Daniel Sanders [Tue, 21 Jun 2016 12:29:03 +0000 (12:29 +0000)]
[arm+x86] Make GNU variants behave like GNU w.r.t combining sin+cos into sincos.

Summary:
canCombineSinCosLibcall() would previously combine sin+cos into sincos for
GNUX32/GNUEABI/GNUEABIHF regardless of whether UnsafeFPMath were set or not.
However, GNU would only combine them for UnsafeFPMath because sincos does not
set errno like sin and cos do. It seems likely that this is an oversight.

Reviewers: t.p.northover

Subscribers: t.p.northover, aemerson, llvm-commits, rengolin

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

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

8 years agoreverted the prev commit due to assertion failure
Elena Demikhovsky [Tue, 21 Jun 2016 12:10:11 +0000 (12:10 +0000)]
reverted the prev commit due to assertion failure

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

8 years agoFixed consecutive memory access detection in Loop Vectorizer.
Elena Demikhovsky [Tue, 21 Jun 2016 11:32:01 +0000 (11:32 +0000)]
Fixed consecutive memory access detection in Loop Vectorizer.
It did not handle correctly cases without GEP.

The following loop wasn't vectorized:

for (int i=0; i<len; i++)
  *to++ = *from++;

I use getPtrStride() to find Stride for memory access and return 0 is the Stride is not 1 or -1.

Differential revision: http://reviews.llvm.org/D20789

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

8 years ago[TargetSchedule] Use 'isOutOfOrder' as possible to avoid magic number. NFC.
Junmo Park [Tue, 21 Jun 2016 08:09:58 +0000 (08:09 +0000)]
[TargetSchedule] Use 'isOutOfOrder' as possible to avoid magic number. NFC.

Summary:
Using isOutOfOrder makes the code more clear.

Reviewers: rengolin, atrick, hfinkel.

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

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

8 years ago[AVX512] Add patterns for any-extending a mask that use the def of KMOVW/KMOVB withou...
Craig Topper [Tue, 21 Jun 2016 07:37:32 +0000 (07:37 +0000)]
[AVX512] Add patterns for any-extending a mask that use the def of KMOVW/KMOVB without going through an EXTRACT_SUBREG and a MOVZX.

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

8 years ago[AVX512] Use update_llc_test_checks.py to regenerate a test in preparation for a...
Craig Topper [Tue, 21 Jun 2016 07:37:27 +0000 (07:37 +0000)]
[AVX512] Use update_llc_test_checks.py to regenerate a test in preparation for a future commit.

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

8 years agoRevert "Change RelaxELFRelocations for llc."
James Y Knight [Tue, 21 Jun 2016 05:40:41 +0000 (05:40 +0000)]
Revert "Change RelaxELFRelocations for llc."

This reverts commit r273019.

From email I sent to list:
> I don't think this makes sense. Either the linker you're using supports
> this feature, or it doesn't. Having it enabled for llc if your linker
> doesn't support it is not fun.
>
> Further note that this also affects basically all other code using llvm
> libraries -- other than Clang, which explicitly sets it back to false by
> default, unless you set the ENABLE_X86_RELAX_RELOCATIONS cmake flag to
> true.
>
> If you want to enable the relax mode across all llvm tools in some
> circumstances, I think it should be via moving the cmake flag from clang
> down into llvm.
>
> I'm going to revert this commit, since I both think it intrinsically
> doesn't make sense to do this, and because it's breaking some of our
> tools.

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

8 years agoReplace silly uses of 'signed' with 'int'
David Majnemer [Tue, 21 Jun 2016 05:10:24 +0000 (05:10 +0000)]
Replace silly uses of 'signed' with 'int'

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

8 years ago[TargetLibraryInfo] Reduce code duplication.
Davide Italiano [Tue, 21 Jun 2016 04:32:21 +0000 (04:32 +0000)]
[TargetLibraryInfo] Reduce code duplication.

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

8 years ago[AVX512] Remove the masked vpcmpeq/vcmpgt intrinsics and autoupgrade them to native...
Craig Topper [Tue, 21 Jun 2016 03:53:24 +0000 (03:53 +0000)]
[AVX512] Remove the masked vpcmpeq/vcmpgt intrinsics and autoupgrade them to native icmps.

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

8 years agoTableGen/CodeGenSchedule: Move some getAllDerivedDefinitions() calls out of inner...
Matthias Braun [Tue, 21 Jun 2016 03:24:03 +0000 (03:24 +0000)]
TableGen/CodeGenSchedule: Move some getAllDerivedDefinitions() calls out of inner loops

This cuts the runtime of the two slowest tblgen invocations in aarch64
in half for me...

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

8 years ago[X86] Pre-allocate SmallVector instead of using push_back in a loop. NFC
Craig Topper [Tue, 21 Jun 2016 03:05:40 +0000 (03:05 +0000)]
[X86] Pre-allocate SmallVector instead of using push_back in a loop. NFC

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

8 years agoclang format change /NFC
Xinliang David Li [Tue, 21 Jun 2016 02:39:08 +0000 (02:39 +0000)]
clang format change /NFC

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

8 years ago[ImplicitNullCchecks] NFC cleanup
Sanjoy Das [Tue, 21 Jun 2016 02:10:18 +0000 (02:10 +0000)]
[ImplicitNullCchecks] NFC cleanup

 - Remove unsued constructor
 - Tighten up the interface for NullCheck

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

8 years ago[CFLAA] Be more aggressive with interprocedural analysis.
George Burgess IV [Tue, 21 Jun 2016 01:42:47 +0000 (01:42 +0000)]
[CFLAA] Be more aggressive with interprocedural analysis.

This patch makes us perform interprocedural analysis on functions that
don't have internal linkage. It also removes a test that should've been
deleted in an earlier commit (since other tests now cover everything
that the newly-removed test covers).

Patch by Jia Chen.

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

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

8 years agoUse the same tag type across all PointerLikeTypeTraits specializations
Reid Kleckner [Mon, 20 Jun 2016 23:50:21 +0000 (23:50 +0000)]
Use the same tag type across all PointerLikeTypeTraits specializations

Works around a bug (PR28216) in Clang's MS mangling of templates with
partial specializations.

This mismatch was introduced in about six months ago in r256656.

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

8 years agoSimplify PICStyles.
Rafael Espindola [Mon, 20 Jun 2016 23:41:56 +0000 (23:41 +0000)]
Simplify PICStyles.

The main difference is that StubDynamicNoPIC is gone. The
dynamic-no-pic mode as the name implies is simply not pic. It is just
conservative about what it assumes to be dso local.

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

8 years agoAttempt to make MSVC buildbots happy.
George Burgess IV [Mon, 20 Jun 2016 23:20:49 +0000 (23:20 +0000)]
Attempt to make MSVC buildbots happy.

Broken by r273219.

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

8 years ago[CFLAA] Add interprocedural function summaries.
George Burgess IV [Mon, 20 Jun 2016 23:10:56 +0000 (23:10 +0000)]
[CFLAA] Add interprocedural function summaries.

This patch adds function summaries, so that we don't need to recompute
various properties about function parameters/return values at each
callsite of a function. It also adds many interprocedural tests for
CFLAA.

Patch by Jia Chen.

Differential Revision: http://reviews.llvm.org/D21475#inline-182390

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

8 years ago[X86][SSE] Add cost model for BSWAP of vectors
Simon Pilgrim [Mon, 20 Jun 2016 23:08:21 +0000 (23:08 +0000)]
[X86][SSE] Add cost model for BSWAP of vectors

The BSWAP of vector types is quite efficiently implemented using vector shuffles on SSE/AVX targets, we should reflect the typical cost of this to encourage vectorization.

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

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

8 years ago[X86][X87] Fix issue with sitofp i64 -> fp128 on 32-bit targets
Simon Pilgrim [Mon, 20 Jun 2016 22:41:17 +0000 (22:41 +0000)]
[X86][X87] Fix issue with sitofp i64 -> fp128 on 32-bit targets

Fix for PR27726 - sitofp i64 to fp128 was loading the merged load i64 to a x87 register preventing legalization for conversion to fp128.

Added 32-bit tests for fp128 cast/conversions.

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

8 years agodon't repeat function names in documentation comments; NFC
Sanjay Patel [Mon, 20 Jun 2016 22:40:35 +0000 (22:40 +0000)]
don't repeat function names in documentation comments; NFC

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

8 years agoForgot to svn add one of my test files for the change in r273207.
Kevin Enderby [Mon, 20 Jun 2016 22:27:49 +0000 (22:27 +0000)]
Forgot to svn add one of my test files for the change in r273207.

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

8 years agoAdd support for Darwin’s 64-bit universal files with 64-bit offsets and sizes for...
Kevin Enderby [Mon, 20 Jun 2016 22:16:18 +0000 (22:16 +0000)]
Add support for Darwin’s 64-bit universal files with 64-bit offsets and sizes for the objects.

Darwin added support in its Xcode 8.0 tools (released in the beta) for universal
files where offsets and sizes for the objects are 64-bits to allow support for
objects contained in universal files to be larger then 4gb.  The change is very
straight forward.  There is a new magic number that differs by one bit, much
like the 64-bit Mach-O files.  Then there is a new structure that follow the
fat_header that has the same layout but with the offset and size fields using
64-bit values instead of 32-bit values.

rdar://26899493

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

8 years agoDelete dead code. NFC.
Rafael Espindola [Mon, 20 Jun 2016 22:08:35 +0000 (22:08 +0000)]
Delete dead code. NFC.

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

8 years agoRemove interface to get/set MaxFunctionCount
Easwaran Raman [Mon, 20 Jun 2016 21:36:38 +0000 (21:36 +0000)]
Remove interface to get/set MaxFunctionCount

Differential revision: http://reviews.llvm.org/D19185

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

8 years ago[tsan] Do not instrument accesses to the gcov counters array
Vedant Kumar [Mon, 20 Jun 2016 21:24:26 +0000 (21:24 +0000)]
[tsan] Do not instrument accesses to the gcov counters array

There is a known intended race here. This is a follow-up to r264805,
which disabled tsan instrumentation for updates to instrprof counters.
For more background on this please see the discussion in D18164.

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

8 years ago[InstSimplify] analyze (optionally casted) icmps to eliminate obviously false logic...
Sanjay Patel [Mon, 20 Jun 2016 20:59:59 +0000 (20:59 +0000)]
[InstSimplify] analyze (optionally casted) icmps to eliminate obviously false logic (PR27869)

By moving this transform to InstSimplify from InstCombine, we sidestep the problem/question
raised by PR27869:
https://llvm.org/bugs/show_bug.cgi?id=27869
...where InstCombine turns an icmp+zext into a shift causing us to miss the fold.

Credit to David Majnemer for a draft patch of the changes to InstructionSimplify.cpp.

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

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

8 years agoPass AssumptionCacheTracker from SampleProfileLoader to Inliner
Dehao Chen [Mon, 20 Jun 2016 20:53:40 +0000 (20:53 +0000)]
Pass AssumptionCacheTracker from SampleProfileLoader to Inliner

Summary: Inliner needs ACT when calling InlineFunction. Instead of nullptr, we need to pass it in from SampleProfileLoader

Reviewers: davidxl

Subscribers: eraman, vsk, danielcdh, llvm-commits

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

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

8 years agotest commit: remove trailing whitespace
Thomas Jablin [Mon, 20 Jun 2016 20:43:26 +0000 (20:43 +0000)]
test commit: remove trailing whitespace

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

8 years agoFix a relatively nasty bug with fs::getPathFromOpenFD() on Windows. The GetFinalPathN...
Aaron Ballman [Mon, 20 Jun 2016 20:28:49 +0000 (20:28 +0000)]
Fix a relatively nasty bug with fs::getPathFromOpenFD() on Windows. The GetFinalPathNameByHandle API does not behave as documented; if given a buffer that has enough space for the path but not the null terminator, the call will return the number of characters required *without* the null terminator (despite being documented otherwise) and it will not set GetLastError(). The result was that this function would return a bogus path and no error. Instead, ensure there is sufficient space for a null terminator (we already strip it off manually for compatibility with older versions of Windows).

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

8 years agoRename to be consistent with other type names. NFC
Daniel Berlin [Mon, 20 Jun 2016 20:21:33 +0000 (20:21 +0000)]
Rename to be consistent with other type names. NFC

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

8 years ago[MemorySSA] Clean up unit tests a tiny bit. NFC.
George Burgess IV [Mon, 20 Jun 2016 19:13:07 +0000 (19:13 +0000)]
[MemorySSA] Clean up unit tests a tiny bit. NFC.

We recently made MemorySSA own the walker it creates. As a part of this,
the MSSA test fixture was changed to have a `Walker*` instead of a
`unique_ptr<Walker>`. So, we no longer need to do `&*Walker` in order to
get a `Walker*`.

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

8 years agoInstCombine: Don't strip convergent from intrinsic callsites
Matt Arsenault [Mon, 20 Jun 2016 19:04:44 +0000 (19:04 +0000)]
InstCombine: Don't strip convergent from intrinsic callsites

Specific instances of intrinsic calls may want to be convergent, such
as certain register reads but the intrinsic declaration is not.

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

8 years agoAdd a isPositionIndependent helper to ARMFastISel. NFC.
Rafael Espindola [Mon, 20 Jun 2016 19:00:05 +0000 (19:00 +0000)]
Add a isPositionIndependent helper to ARMFastISel. NFC.

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

8 years ago[InstCombine] consolidate some icmp+logic tests and improve checks
Sanjay Patel [Mon, 20 Jun 2016 18:40:37 +0000 (18:40 +0000)]
[InstCombine] consolidate some icmp+logic tests and improve checks

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

8 years ago[AArch64] Adjust the loop buffer size for Exynos M1 (NFC)
Evandro Menezes [Mon, 20 Jun 2016 18:39:41 +0000 (18:39 +0000)]
[AArch64] Adjust the loop buffer size for Exynos M1 (NFC)

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

8 years ago[Kaleidoscope][BuildingAJIT] Remove some superfluous commas in Chapter 2.
Lang Hames [Mon, 20 Jun 2016 18:37:52 +0000 (18:37 +0000)]
[Kaleidoscope][BuildingAJIT] Remove some superfluous commas in Chapter 2.

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

8 years ago[Kaleidoscope][BuildingAJIT] Fix a punctuation mistake in Chapter 2.
Lang Hames [Mon, 20 Jun 2016 18:34:46 +0000 (18:34 +0000)]
[Kaleidoscope][BuildingAJIT] Fix a punctuation mistake in Chapter 2.

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