| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
inner loops
This cuts the runtime of the two slowest tblgen invocations in aarch64
in half for me...
llvm-svn: 273235
 | 
| | 
| 
| 
|  | 
llvm-svn: 273234
 | 
| | 
| 
| 
|  | 
llvm-svn: 273233
 | 
| | 
| 
| 
| 
| 
| 
|  | 
- Remove unsued constructor
 - Tighten up the interface for NullCheck
llvm-svn: 273231
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
llvm-svn: 273229
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
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.
llvm-svn: 273223
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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.
llvm-svn: 273222
 | 
| | 
| 
| 
| 
| 
|  | 
Broken by r273219.
llvm-svn: 273220
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
llvm-svn: 273219
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
llvm-svn: 273217
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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.
llvm-svn: 273210
 | 
| | 
| 
| 
|  | 
llvm-svn: 273209
 | 
| | 
| 
| 
|  | 
llvm-svn: 273208
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
llvm-svn: 273207
 | 
| | 
| 
| 
|  | 
llvm-svn: 273206
 | 
| | 
| 
| 
| 
| 
|  | 
Differential revision: http://reviews.llvm.org/D19185
llvm-svn: 273203
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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.
llvm-svn: 273202
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
llvm-svn: 273200
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
llvm-svn: 273199
 | 
| | 
| 
| 
|  | 
llvm-svn: 273197
 | 
| | 
| 
| 
| 
| 
|  | 
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).
llvm-svn: 273195
 | 
| | 
| 
| 
|  | 
llvm-svn: 273194
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
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*`.
llvm-svn: 273189
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Specific instances of intrinsic calls may want to be convergent, such
as certain register reads but the intrinsic declaration is not.
llvm-svn: 273188
 | 
| | 
| 
| 
|  | 
llvm-svn: 273187
 | 
| | 
| 
| 
|  | 
llvm-svn: 273186
 | 
| | 
| 
| 
|  | 
llvm-svn: 273185
 | 
| | 
| 
| 
|  | 
llvm-svn: 273184
 | 
| | 
| 
| 
|  | 
llvm-svn: 273183
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
The implicit operand is added by the initial instruction construction,
so this was adding an additional vcc use. The original one
was missing the undef flag the original condition had,
so the verifier would complain.
llvm-svn: 273182
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This will help sneak undefs past GVN into the DAG for
some tests.
Also add missing intrinsic for rsq_legacy, even though the node
was already selected to the instruction. Also start passing
the debug location to intrinsic errors.
llvm-svn: 273181
 | 
| | 
| 
| 
|  | 
llvm-svn: 273180
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Backends may want to report errors on resources other than
stack size.
llvm-svn: 273177
 | 
| | 
| 
| 
|  | 
llvm-svn: 273173
 | 
| | 
| 
| 
|  | 
llvm-svn: 273172
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Trying to expand short names with a relative path doesn't work, so this
first gets the module name to get a full path (which can still have short
names).
llvm-svn: 273171
 | 
| | 
| 
| 
|  | 
llvm-svn: 273170
 | 
| | 
| 
| 
| 
| 
|  | 
With this ARM fast isel knows that PIE variable are not preemptable.
llvm-svn: 273169
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Reviewers: arsenm, kzhuravl, rafael
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21401
llvm-svn: 273168
 | 
| | 
| 
| 
|  | 
llvm-svn: 273167
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Reviewers: arsenm, rafael, kzhuravl
Subscribers: rafael, arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21400
llvm-svn: 273166
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
TargetLowering and DAGToDAG are used to combine ADDC, ADDE and UMLAL
dags into UMAAL. Selection is split into the two phases because it
is easier to match the two patterns at those different times.
Differential Revision: http://http://reviews.llvm.org/D21461
llvm-svn: 273165
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Reduces a bit of code duplication and clarify where we are interested
just on position independence and no the location of the symbol.
llvm-svn: 273164
 | 
| | 
| 
| 
|  | 
llvm-svn: 273163
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This reverts commit r273160, reapplying r273132.
RecursivelyDeleteTriviallyDeadInstructions cannot be called on a
parentless Instruction.
llvm-svn: 273162
 | 
| | 
| 
| 
| 
| 
|  | 
happens to also eliminate an instance of switchception. NFC intended.
llvm-svn: 273161
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This reverts commit r273132.
Breaks multiple test under /llvm/test:Transforms (e.g.
llvm/test:Transforms/LoopIdiom/basic.ll.test) under asan.
llvm-svn: 273160
 | 
| | 
| 
| 
|  | 
llvm-svn: 273153
 | 
| | 
| 
| 
|  | 
llvm-svn: 273149
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Adding core tuning support for new Broadcom Vulcan core (ARMv8.1A).
Differential Revision: http://reviews.llvm.org/D21500
llvm-svn: 273148
 |