| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
because LSan is not currently supported.
Differential Revision: http://reviews.llvm.org/D20947
llvm-svn: 271979
|
| |
|
|
|
|
|
|
|
|
|
|
| |
TLS access requires an offset from the TLS index. The index itself is the
section-relative distance of the symbol. For ARM, the relevant relocation
(IMAGE_REL_ARM_SECREL) is applied as a constant. This means that the value may
not be an immediate and must be lowered into a constant pool. This offset will
not be base relocated. We were previously emitting the actual address of the
symbol which would be base relocated and would therefore be the vaue offset by
the ImageBase + TLS Offset.
llvm-svn: 271974
|
| |
|
|
|
|
|
| |
clang-format a couple of switches in preparation for a future change. Add some
enumeration comments
llvm-svn: 271973
|
| |
|
|
|
|
| |
Just adjust the whitespace for the selection patterns. NFC.
llvm-svn: 271972
|
| |
|
|
| |
llvm-svn: 271967
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r271962 and reinstantes r271957.
MSVC's linker doesn't appear to like it if you have an empty symbol
substream, so only open a symbol substream if we're going to emit
something about globals into it.
Makes check-asan pass.
llvm-svn: 271965
|
| |
|
|
|
|
| |
world without a named variable
llvm-svn: 271964
|
| |
|
|
|
|
| |
This reverts commit r271957, it broke check-asan on Windows.
llvm-svn: 271962
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
scalarizePHI only looked for phis that have exactly two uses - the "latch"
use, and an extract. Unfortunately, we can not assume all equivalent extracts
are CSE'd, since InstCombine itself may create an extract which is a duplicate
of an existing one. This extends it to handle several distinct extracts from
the same index.
This should fix at least some of the performance regressions from PR27988.
Differential Revision: http://reviews.llvm.org/D20983
llvm-svn: 271961
|
| |
|
|
| |
llvm-svn: 271958
|
| |
|
|
|
|
|
| |
This currently emits everything as S_GDATA32, which isn't right for
things like thread locals, but it's a start.
llvm-svn: 271957
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
functions.
Arrange to call verify(Function &) on each function, followed by
verify(Module &), whether the verifier is being used from the pass or
from verifyModule(). As a side effect, this fixes an issue that caused
us not to call verify(Function &) on unmaterialized functions from
verifyModule().
Differential Revision: http://reviews.llvm.org/D21042
llvm-svn: 271956
|
| |
|
|
| |
llvm-svn: 271954
|
| |
|
|
|
|
|
| |
Remove previously unreachable code that verifies that a function definition has
an entry block. By definition, a function definition has at least one block.
llvm-svn: 271948
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Calls to this function are currently injected by the
``SanitizerCoverageModule`` pass when the both the ``indirect-calls``
and ``trace-pc`` sanitizer coverage options are enabled and the code
being instrumented has indirect calls. Previously because LibFuzzer did
not define this function this would lead to link errors when building
some of the tests on OSX.
Differential Revision: http://reviews.llvm.org/D20946
llvm-svn: 271938
|
| |
|
|
| |
llvm-svn: 271936
|
| |
|
|
|
|
|
|
| |
If we had a constant group address space cast the queue pointer
wasn't enabled for the function, resulting in a crash on noreg
later.
llvm-svn: 271935
|
| |
|
|
| |
llvm-svn: 271934
|
| |
|
|
| |
llvm-svn: 271932
|
| |
|
|
|
|
|
|
|
|
|
| |
In some cases, when simplifying with SCEV, we might consider pointer values as
just usual integer values. Thus, we might get a different type from what we
had originally in the map of simplified values, and hence we need to check
types before operating on the values.
This fixes PR28015.
llvm-svn: 271931
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Fix LSRInstance::HoistInsertPosition() to check the original insert
position block first for a canonical insertion point that is dominated
by all inputs. This leads to SCEV being able to reuse more instructions
since it currently tracks the instructions it creates for reuse by
keeping a table of <Value, insert point> pairs.
Originally reviewed in http://reviews.llvm.org/D18001
Reviewers: atrick
Subscribers: llvm-commits, mzolotukhin, mcrosier
Differential Revision: http://reviews.llvm.org/D18480
llvm-svn: 271929
|
| |
|
|
|
|
|
|
|
|
| |
The data strucutre in the new FPO stream is described in the
PE/COFF spec. There is one record per function if frame pointer
is omitted.
Differential Revision: http://reviews.llvm.org/D20999
llvm-svn: 271926
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The code layout that TailMerging (inside BranchFolding) works on is not the
final layout optimized based on the branch probability. Generally, after
BlockPlacement, many new merging opportunities emerge.
This patch calls Tail Merging after MBP and calls MBP again if Tail Merging
merges anything.
Differential Revision: http://reviews.llvm.org/D20276
llvm-svn: 271925
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D20184
llvm-svn: 271923
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following D20970 (committed as r271726).
This is a substantial refactoring of the host CPU detection code.
There is no functionality change intended, but the changes are extensive.
Definitions of architecture types and subtypes are by no means exhaustive or
perfectly defined, but a fair starting point.
Suggestions for futher improvements are welcome.
Reviewers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20988
llvm-svn: 271921
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In r271810 ( http://reviews.llvm.org/rL271810 ), I loosened the check
above this to work for any Constant rather than ConstantInt. AFAICT,
that part makes sense if we can determine that the shrunken/extended
constant remained equal. But it doesn't make sense for this later
transform where we assume that the constant DID change.
This could assert for a ConstantExpr:
https://llvm.org/bugs/show_bug.cgi?id=28011
And it could be wrong for a vector as shown in the added regression test.
llvm-svn: 271908
|
| |
|
|
|
|
|
|
|
|
|
|
| |
src2 == VCC.
Another step for unification llvm assembler/disassembler with sp3.
Besides, CodeGen output is a bit improved, thus changes in CodeGen tests.
Assembler/Disassembler tests updated/added.
Differential Revision: http://reviews.llvm.org/D20796
llvm-svn: 271900
|
| |
|
|
|
|
|
| |
Contributed-by: Aditya Kumar <hiraditya@msn.com>
Differential Revision: http://reviews.llvm.org/D20953
llvm-svn: 271895
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21013
llvm-svn: 271891
|
| |
|
|
|
|
| |
Found by clang-tidy's misc-assert-side-effect.
llvm-svn: 271887
|
| |
|
|
| |
llvm-svn: 271882
|
| |
|
|
|
|
| |
of vector shuffle and select.
llvm-svn: 271872
|
| |
|
|
| |
llvm-svn: 271870
|
| |
|
|
| |
llvm-svn: 271862
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This hasn't been caught before because it requires noalias or similarly
strong alias analysis to actually reproduce.
Fixes http://llvm.org/PR27952 .
Reviewers: hfinkel, sanjoy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D20944
llvm-svn: 271858
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since FoldOpIntoPhi speculates the binary operation to potentially each
of the predecessors of the PHI node (pulling it out of arbitrary control
dependence in the process), we can FoldOpIntoPhi only if we know the
operation doesn't have UB.
This also brings up an interesting profitability question -- the way it
is written today, commonIRemTransforms will hoist out work from
dynamically dead code into code that will execute at runtime. Perhaps
that isn't the best canonicalization?
Fixes PR27968.
llvm-svn: 271857
|
| |
|
|
| |
llvm-svn: 271851
|
| |
|
|
| |
llvm-svn: 271850
|
| |
|
|
| |
llvm-svn: 271849
|
| |
|
|
| |
llvm-svn: 271848
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
There are some rough corners, since the new pass manager doesn't have
(as far as I can tell) LoopSimplify and LCSSA, so I've updated the
tests to run them separately in the old pass manager in the lit tests.
We also don't have an equivalent for AU.setPreservesCFG() in the new
pass manager, so I've left a FIXME.
Reviewers: bogner, chandlerc, davide
Subscribers: sanjoy, mcrosier, llvm-commits
Differential Revision: http://reviews.llvm.org/D20783
llvm-svn: 271846
|
| |
|
|
|
|
|
|
|
|
| |
It is an off-by-default option that no one seems to use[0], and given
that SCEV directly understands the overflow instrinsics there is no real
need for it anymore.
[0]: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098181.html
llvm-svn: 271845
|
| |
|
|
| |
llvm-svn: 271843
|
| |
|
|
| |
llvm-svn: 271839
|
| |
|
|
|
|
| |
combines
llvm-svn: 271834
|
| |
|
|
| |
llvm-svn: 271831
|
| |
|
|
|
|
| |
DecodeVPERMILPMask.
llvm-svn: 271830
|
| |
|
|
|
|
| |
Could do this for other types to, but this is what's needed to replace the instrinsic with native IR in clang.
llvm-svn: 271828
|
| |
|
|
|
|
| |
v4i32/v8i32 ANDs aren't promoted to v2i64/v4i64 when VLX is enabled.
llvm-svn: 271826
|
| |
|
|
| |
llvm-svn: 271824
|