| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 279287
|
| |
|
|
|
|
|
| |
- Recognize C2_cmpgtui, S2_tstbit_i, and S4_ntstbit_i.
- Avoid creating new-value instructions with both source operands equal.
llvm-svn: 279286
|
| |
|
|
| |
llvm-svn: 279285
|
| |
|
|
| |
llvm-svn: 279283
|
| |
|
|
| |
llvm-svn: 279282
|
| |
|
|
| |
llvm-svn: 279280
|
| |
|
|
| |
llvm-svn: 279279
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Unsigned addition and subtraction can reuse the instructions created to
legalize large width operations (i.e. both produce and consume a carry flag).
Signed operations and multiplies get a dedicated op-with-overflow instruction.
Once this is produced the two values are combined into a struct register (which
will almost always be merged with a corresponding G_EXTRACT as part of
legalization).
llvm-svn: 279278
|
| |
|
|
|
|
|
|
| |
This reverts commit r279178.
Speculative revert in hope to fix asan crash on arm.
llvm-svn: 279277
|
| |
|
|
|
|
|
|
| |
This reverts commit r279222.
Speculative revert in hope to fix asan crash on arm.
llvm-svn: 279276
|
| |
|
|
| |
llvm-svn: 279275
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Repeated inserts into AliasSetTracker have quadratic behavior - inserting a
pointer into AST is linear, since it requires walking over all "may" alias
sets and running an alias check vs. every pointer in the set.
We can avoid this by tracking the total number of pointers in "may" sets,
and when that number exceeds a threshold, declare the tracker "saturated".
This lumps all pointers into a single "may" set that aliases every other
pointer.
(This is a stop-gap solution until we migrate to MemorySSA)
This fixes PR28832.
Differential Revision: https://reviews.llvm.org/D23432
llvm-svn: 279274
|
| |
|
|
|
|
| |
This doesn't change tests codegen as we already combined to blend+zero which is what we lower VZEXT_MOVL to on SSE41+ targets, but it does put us in a better position when we improve shuffling for optsize.
llvm-svn: 279273
|
| |
|
|
|
|
|
|
|
| |
Ensure that load locked and store conditional instructions are only
packetized with ALU32 instructions.
Patch by Ben Craig.
llvm-svn: 279272
|
| |
|
|
|
|
|
|
|
|
|
| |
The intended transform is:
// Simplify icmp eq (or (ptrtoint P), (ptrtoint Q)), 0
// -> and (icmp eq P, null), (icmp eq Q, null).
P and Q are both pointer types, but may have different types. We need
two calls to getNullValue() to make the icmps.
llvm-svn: 279271
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: We will need these in AMDGPU's new SchedStrategy implmentation.
Reviewers: MatzeB, atrick
Subscribers: llvm-commits, MatzeB
Differential Revision: https://reviews.llvm.org/D23679
llvm-svn: 279270
|
| |
|
|
| |
llvm-svn: 279269
|
| |
|
|
|
|
|
|
| |
CGSCC use a WeakVH to track call sites. RAUW a call within a function
can result in that WeakVH getting confused about whether or not the call
site is still around.
llvm-svn: 279268
|
| |
|
|
|
|
| |
Patch by Jyotsna Verma.
llvm-svn: 279267
|
| |
|
|
|
|
| |
constant vectors
llvm-svn: 279266
|
| |
|
|
| |
llvm-svn: 279265
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is fix for PR28976.
Problem was that in scanRelocs, we computed relocation offset too early
for case when linkerscript was used. Patch fixes the issue
delaying the calculation.
Differential revision: https://reviews.llvm.org/D23655
llvm-svn: 279264
|
| |
|
|
|
|
|
|
|
| |
Of course, we really need to refactor and fix all of the cmp predicates,
but this one is interesting because without it, we later perform an
information-losing transform of icmp (shl 1, Y), C, and we can't recover
the better fold.
llvm-svn: 279263
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
visibility.
This patch is opposite to D19024, which made this symbols to be hidden by default.
Unfortunately FreeBSD loader wants to see
start_set_modmetadata_set/stop_set_modmetadata_set in the dynamic symbol table.
They were not placed there because had hidden visibility.
Patch makes them to have default visibility again.
Differential revision: https://reviews.llvm.org/D23552
llvm-svn: 279262
|
| |
|
|
|
|
| |
and LTO specifc path (NFC)
llvm-svn: 279261
|
| |
|
|
| |
llvm-svn: 279259
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously DT_PREINIT_ARRAYSZ, DT_INIT_ARRAYSZ and DT_FINI_ARRAYSZ
were set to zero when lincerscript was used becase sections sizes are
calculated later that were taken.
Patch delays values calculation for these entries. Testcase is provided.
Differential revision: https://reviews.llvm.org/D23663
llvm-svn: 279258
|
| |
|
|
|
|
|
| |
These are implicitly included as part of larger test cases, but they don't
exist stand-alone (and don't happen for vectors...).
llvm-svn: 279257
|
| |
|
|
|
|
|
|
|
|
|
| |
You can force input section alignment within an output section by using SUBALIGN. The
value specified overrides any alignment given by input sections, whether larger or smaller.
SUBALIGN is used in many projects in the wild.
Differential revision: https://reviews.llvm.org/D23063
llvm-svn: 279256
|
| |
|
|
| |
llvm-svn: 279255
|
| |
|
|
| |
llvm-svn: 279254
|
| |
|
|
|
|
|
|
|
|
|
| |
Introduce a new CMake option `COMPILER_RT_SANITIZERS_TO_BUILD` which takes
either a special token `all` (default) which will preserve the current behaviour
or a CMake list of sanitizers to build. It will still perform the normal checks
if the sanitizer is requested. It only permits a further means to exclude a
particular sanitizer. This gives finer grained control than
`COMPILER_RT_BUILD_SANITIZERS` which only gives an all or nothing control.
llvm-svn: 279253
|
| |
|
|
| |
llvm-svn: 279252
|
| |
|
|
|
|
| |
Patch by Arnold Schwaighofer.
llvm-svn: 279251
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: E.g. `{a: 1} as b`.
Reviewers: djasper
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D23714
llvm-svn: 279250
|
| |
|
|
|
|
| |
Patch by Brendon Cahoon.
llvm-svn: 279249
|
| |
|
|
| |
llvm-svn: 279248
|
| |
|
|
| |
llvm-svn: 279247
|
| |
|
|
| |
llvm-svn: 279246
|
| |
|
|
| |
llvm-svn: 279245
|
| |
|
|
| |
llvm-svn: 279244
|
| |
|
|
| |
llvm-svn: 279243
|
| |
|
|
|
|
|
|
|
|
|
|
| |
not bytes.
In addition, the branch instructions will have proper BB destinations, not offsets, like before.
Patch by Vadzim Dambrouski!
Differential Revision: https://reviews.llvm.org/D20162
llvm-svn: 279242
|
| |
|
|
| |
llvm-svn: 279241
|
| |
|
|
| |
llvm-svn: 279240
|
| |
|
|
|
|
|
|
|
| |
Improved handling of fma, floating point min/max, additional load/store
instructions for floating point types.
Patch by Jyotsna Verma.
llvm-svn: 279239
|
| |
|
|
|
|
|
| |
GetByteSize() of a DataBuffer returns a uint64_t (it probably shouldn't), which isn't implicitly
convertible to size_t.
llvm-svn: 279238
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inside those structs.
Summary:
The Print() members might take optional access_size and bug_type
parameters to still be able to provide the same information
Reviewers: kcc, samsonov
Subscribers: kubabrecka, llvm-commits
Differential Revision: https://reviews.llvm.org/D23658
llvm-svn: 279237
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 279236
|
| |
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D23668
llvm-svn: 279235
|