| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
GEP offsets are signed, don't treat them as huge positive numbers.
llvm-svn: 275251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is necessary for D21771. In order to add the hotness attribute to
optimization remarks we need BFI to be available in all passes that emit
optimization remarks.
However we don't want to pay for computing BFI unless the hotness
attribute is requested.
This is achieved by making BFI lazy at the very high-level through a new
analysis pass -- BFI is not calculated unless requested.
I am adding a test to check the laziness under D21771 where the first
user of the analysis is added.
Reviewers: hfinkel, dexonsmith, davidxl
Subscribers: davidxl, dexonsmith, llvm-commits
Differential Revision: http://reviews.llvm.org/D22141
llvm-svn: 275250
|
|
|
|
|
|
| |
No functional change is intended, just a minor cleanup.
llvm-svn: 275249
|
|
|
|
|
|
|
|
|
|
|
| |
This achieves the same result as previously by using line wrapping. This allows
us to have one keyword per line which makes adding a new keyword significantly
easier, especially if they are inserted in a lexicographical sort order as you
no longer need to reflow the content around it.
This only does the keywords as that is the group which changes more often.
llvm-svn: 275248
|
|
|
|
|
|
|
|
|
|
|
| |
Internalization was missing cases where we originally had a local symbol
that was promoted eagerly but not actually exported. This is because we
were only internalizing the set of global (non-local) symbols that were
PREVAILAING_DEF_IRONLY. Instead, collect the set of global symbols that
are referenced outside of a single IR file, and skip internalization for
those.
llvm-svn: 275247
|
|
|
|
|
|
|
| |
A GEPed offset can go negative, the result of getIndexedOffsetInType
should according be a signed type.
llvm-svn: 275246
|
|
|
|
|
|
|
| |
The `local_unnamed_addr` was introduced in SVN r272709. Update the syntax
highlighting rules.
llvm-svn: 275245
|
|
|
|
|
|
|
|
| |
The many levels of nesting inside the responsible code made it easy for
bugs to sneak in. Flattening the logic makes it easier to see what's
going on.
llvm-svn: 275244
|
|
|
|
|
|
| |
No functional change is intended, just a minor cleanup.
llvm-svn: 275243
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
lld currently relies on lib.exe in order to generate an empty import library.
The "empty" import library consists of 5 members:
- first linker member
- second linker member
- Import Descriptor
- NULL Import Descriptor
- NULl Thunk
The first two entries (first and second linker members) are string tables which
are never updated. Therefore, they may as well as not be present. A subsequent
change to add that is probably warranted. However, this does not prevent the
use of the linker.
The Import Descriptor is the content which is most important. It provides an
Import Name Table entry for the library (as specified by the LIBRARY directive
in the DEF file). Additionally, it contains undefined references to the NULL
Import Descriptor and the library NULL Thunk Data. This ensures that the linker
will pull in the subsequent objects from the import library for the link. The
Import Descriptor has a single symbol (__IMPORT_DESCRIPTOR_<Library>) which
contains 3 relocations, one to the INT (Import Name Table) entry, one to the ILT
(Import Lookup Table) entry, and one to the IAT (Import Address Table) entry.
The NULL Import Descriptor is the last import descriptor and terminates the
import descriptor array. It contains a single symbol
(__NULL_IMPORT_DESCRIPTOR).
The NULL Thunk contains a single symbol (\x7f<Library>_NULL_THUNK_DATA) and
provides the terminator for the ILT and IAT.
These files are currently constructed manually following the example of the
Short Import Library format. This is arguably less than ideal, and it may be
possible to use MCAssembler and feed it the fragments to construct the object.
The major difference between the LIB (LINK) generated objects and the ones
generated here is that they are all one section shorter (.debug$S) as they do
not contain the debug information and one symbol shorter (@comp.id) as they do
not contain the RICH signature.
Move the logic related to the librarian into a new source file (Librarian.cpp).
llvm-svn: 275242
|
|
|
|
|
|
|
|
| |
Initialise more members in initializer lists. Invert the condition that had
grown to be pretty confusing. The `_objc_empty_vtable` is only used on macOS
<10.9. This simplifies the code. NFC.
llvm-svn: 275241
|
|
|
|
|
|
|
|
| |
zext/sext with 256-bit source types producing a 256-bit result.
These patterns just extracted the source down to 128-bits to use the instructions. AVX512 seems to have blindly copied them over for VLX, but did not create similar patterns for 512-bit sources. So I'm hoping the backend can't actually produce these cases.
llvm-svn: 275240
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The expandAddRecExprLiterally function incorrectly transforms
`[Start + Step * X]` into `Step * [Start + X]` instead of the correct
transform of `[Step * X] + Start`.
This caused https://github.com/JuliaLang/julia/issues/14704#issuecomment-174126219
due to what appeared to be sufficiently complicated loop interactions.
Patch by Jameson Nash (jameson@juliacomputing.com).
Reviewers: sanjoy
Differential Revision: http://reviews.llvm.org/D16505
llvm-svn: 275239
|
|
|
|
|
|
|
| |
Remove another variable added in r275216 that was only used in debug
mode.
llvm-svn: 275238
|
|
|
|
| |
llvm-svn: 275237
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by H.J. Lu.
This patch adds -m elf32_x86_64 to lld. But it doesn't generate working
x32 binaries.
Differential Revision: http://reviews.llvm.org/D22268
llvm-svn: 275236
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by H.J. Lu.
As x86-64 psABI supports both LP64 and ILP32, this patch adds <ELFT>
template to X86_64TargetInfo.
Differential Revision: http://reviews.llvm.org/D22287
llvm-svn: 275235
|
|
|
|
|
|
|
| |
Config->Pic is true if (Config->Pie || Config->Shared) is true,
so this extra check was redundant.
llvm-svn: 275234
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Bug pointed out by Benjamin Kramer in r264008. I think the bug is
benign because by the time this is called, we should only have at most
two overloads to consider (either a host and a device overload, or a
host+device overload, but not all three).
Reviewers: tra
Subscribers: cfe-commits, bkramer
Differential Revision: http://reviews.llvm.org/D21914
llvm-svn: 275233
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Specifically, this patch adds testcases for all three calls to
EraseUnwantedCUDAMatches. The addr-of-overloaded-fn test I accidentally
neutered in r264207, which moved much of
CodeGenCUDA/function-overload.cu into SemaCUDA/function-overload.cu.
The coverage from overloaded-delete test is new.
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D21913
llvm-svn: 275232
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
You can overload a destructor in CUDA, and SemaOverload needs to be
tweaked not to crash when it sees an explicit call to an overloaded
destructor.
Reviewers: rsmith
Subscribers: cfe-commits, tra
Differential Revision: http://reviews.llvm.org/D21912
llvm-svn: 275231
|
|
|
|
|
|
| |
Should make sanitizers happier.
llvm-svn: 275230
|
|
|
|
|
|
| |
code behave correctly when indexes are out of range or the collection is empty and is "log enable lldb unwind" is enabled, log an error message.
llvm-svn: 275226
|
|
|
|
| |
llvm-svn: 275225
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New pass manager for LICM.
Summary: Port LICM to the new pass manager.
Reviewers: davidxl, silvas
Subscribers: krasin, vitalybuka, silvas, davide, sanjoy, llvm-commits, mehdi_amini
Differential Revision: http://reviews.llvm.org/D21772
llvm-svn: 275224
|
|
|
|
|
|
|
|
|
| |
The lookup tables can get out of date during the lifetime of the object so we
need to preserve LLDB's ability to answer questions about TagDecls' contents.
<rdar://problem/20751935>
llvm-svn: 275223
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Port LICM to the new pass manager.
Reviewers: davidxl, silvas
Subscribers: krasin, vitalybuka, silvas, davide, sanjoy, llvm-commits, mehdi_amini
Differential Revision: http://reviews.llvm.org/D21772
llvm-svn: 275222
|
|
|
|
|
|
|
|
|
|
| |
We can freeze the registers after the MachineFrameInfo has been configured (by
telling it about calls, inline asm, ...). This doesn't happen at all yet, but
will be part of IR translation.
Fixes -verify-machineinstrs assertion.
llvm-svn: 275221
|
|
|
|
|
|
| |
I meant to squash this into it.
llvm-svn: 275220
|
|
|
|
|
|
|
| |
Remove unused variable added in r275216. Should fix bot failure:
http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/24665
llvm-svn: 275219
|
|
|
|
|
|
|
|
| |
had it in the wrong directory. Moved it to CodeGen/PowerPC.
Sorry about the noise.
llvm-svn: 275218
|
|
|
|
|
|
|
|
|
| |
The LCSSA pass itself will not generate several redundant PHI nodes in a single
exit block. However, such redundant PHI nodes don't violate LCSSA form, and may
be introduced by passes that preserve LCSSA, and/or preserved by the LCSSA pass
itself. So, assuming a single PHI node per exit block is not safe.
llvm-svn: 275217
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Refactored the profitability analysis out of the IC promotion pass and
into lib/Analysis so that it can be accessed by the summary index
builder in a follow-on patch to enable IC promotion in ThinLTO (D21932).
Reviewers: davidxl, xur
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D22182
llvm-svn: 275216
|
|
|
|
|
|
|
|
|
|
|
| |
This patch corresponds to review:
http://reviews.llvm.org/D20239
It adds exploitation of XXINSERTW and XXEXTRACTUW instructions that
are useful in some cases for inserting and extracting vector elements of
v4[if]32 vectors.
llvm-svn: 275215
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: mehdi_amini
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D22245
llvm-svn: 275214
|
|
|
|
|
|
|
|
|
| |
Use range-base for loops.
Use auto when appropriate.
No functional change is intended.
llvm-svn: 275213
|
|
|
|
| |
llvm-svn: 275212
|
|
|
|
| |
llvm-svn: 275211
|
|
|
|
|
|
| |
As discussed in http://reviews.llvm.org/D22073
llvm-svn: 275210
|
|
|
|
|
|
|
|
|
|
| |
The thread registry test was failing to allocate 25 threads with stack
size 134MB, which is pretty reasonable.
Also print the error code in our pthread wrappers in case this happens
again.
llvm-svn: 275209
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D22269
llvm-svn: 275208
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mov edi,edi is _not_ NOP in 64-bit, use 66,90h instead.
This bug was causing interception unittest to crash on
Windows64 (windows 8 and windows 10).
Credits to etienneb for finding the root cause.
Patch by: Wei Wang
Differential Revision: http://reviews.llvm.org/D22274
llvm-svn: 275207
|
|
|
|
|
|
|
|
| |
The -image-base option allows for overriding the base address.
Differential Revision: http://reviews.llvm.org/D22116
llvm-svn: 275206
|
|
|
|
|
|
|
|
|
| |
Use range-based for loops instead of doing everything manually.
Use auto when appropriate.
No functional change is intended.
llvm-svn: 275205
|
|
|
|
|
|
|
|
|
|
| |
With r274952 and r275201 in place there are no cases left where a
forward liveness analysis yields different results than a backward one.
So we can remove the forward stepping logic.
Differential Revision: http://reviews.llvm.org/D22083
llvm-svn: 275204
|
|
|
|
|
|
|
| |
Don't create a terminator in the middle of the block.
We should probably get rid of this intrinsic.
llvm-svn: 275203
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Port LoopIdiomRecognize Pass to new PM
Reviewers: davidxl
Subscribers: davide, sanjoy, mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D22250
llvm-svn: 275202
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use LivePhysRegs with a backwards walking algorithm to update live in
lists, this way the results do not depend on the presence of kill flags
anymore.
This patch also reduces the number of registers added as live-in.
Previously all pristine registers as well as all sub registers of a
super register were added resulting in unnecessarily large live in
lists. This fixed https://llvm.org/PR25263.
Differential Revision: http://reviews.llvm.org/D22027
llvm-svn: 275201
|
|
|
|
|
|
|
| |
No test since these aren't used now, except for one place
in a pre-emit pass.
llvm-svn: 275200
|
|
|
|
|
|
| |
rdar://problem/25767901
llvm-svn: 275199
|