| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 263265
|
| |
|
|
| |
llvm-svn: 263264
|
| |
|
|
|
|
|
| |
A value that we want to keep in a virtual register cannot be null.
Reflect that in the API.
llvm-svn: 263263
|
| |
|
|
| |
llvm-svn: 263262
|
| |
|
|
| |
llvm-svn: 263261
|
| |
|
|
|
|
| |
A null basic block is invalid, so just pass a reference.
llvm-svn: 263260
|
| |
|
|
| |
llvm-svn: 263259
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following r263086, we are now relying on a flag on the Context to
discard Value names in release builds.
Reviewers: chandlerc
Subscribers: mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D18023
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263258
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following r263086, we are now relying on a flag on the Context to
discard Value names in release builds.
Reviewers: chandlerc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18024
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263257
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Following r263086, we are replacing this by a runtime check.
More cleanup will follow on the IRBuilder itself, but I submitted
this patch separately as SROA has a fancy "prefixInserter" class
that needs extra-love.
Reviewers: chandlerc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18022
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263256
|
| |
|
|
|
|
|
|
|
| |
The truncation was causing the sorting algorithm to behave oddly when comparing
positive and negative offsets. Fortunately, this doesn't currently happen in
practice and was exposed by a WIP. Thus, I can't test this change now, but the
follow on patch will.
llvm-svn: 263255
|
| |
|
|
| |
llvm-svn: 263253
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
That is directly opposite to http://reviews.llvm.org/D18045,
which was reverted.
This patch changes all messages to start from lowercase letter if
they were not before.
That is done to be consistent with clang.
Differential revision: http://reviews.llvm.org/D18085
llvm-svn: 263252
|
| |
|
|
| |
llvm-svn: 263251
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
member type.
Because of how this type is used by the ValueTable, it cannot actually
have hidden visibility. GCC actually nicely warns about this but Clang
just silently ... I don't even know. =/ We should do a better job either
way though.
This should resolve a bunch of the GCC warnings about visibility that
the port of GVN triggered and make the visibility story a bit more
correct.
llvm-svn: 263250
|
| |
|
|
| |
llvm-svn: 263249
|
| |
|
|
|
|
|
| |
In lld we usually avoid hash lookups. In addition to that, IR names are
not fully mangled, so it is best to avoid using them whenever possible.
llvm-svn: 263248
|
| |
|
|
|
|
|
|
|
|
|
| |
Added new string conversion wrappers that convert between `std::string` (of UTF-8 bytes) and `std::wstring`, which is particularly useful for Win32 interop. Also fixed a missing string conversion for `getenv` on Win32, using these new wrappers.
The motivation behind this is to provide the support functions required for LLDB to work properly on Windows with non-ASCII data; however, the functions are not LLDB specific.
Patch by cameron314
Differential Revision: http://reviews.llvm.org/D17549
llvm-svn: 263247
|
| |
|
|
| |
llvm-svn: 263246
|
| |
|
|
|
|
|
|
|
|
|
| |
Add command-line tests for ARM Cortex-R8 checking that the driver calls
clang -cc1 with the correct little-endian/big-endian, and ARM/Thumb triple.
Patch by Pablo Barrio <pablo.barrio@arm.com>
Differential Revision: http://reviews.llvm.org/D18052
llvm-svn: 263245
|
| |
|
|
|
|
| |
We should just copy the symbol names with -r.
llvm-svn: 263244
|
| |
|
|
|
|
| |
We only need one run of llmv-readobj.
llvm-svn: 263243
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D17966
llvm-svn: 263242
|
| |
|
|
| |
llvm-svn: 263241
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was discussed to make all messages be
lowercase to be consistent with clang.
(also reverts the r263128 which fixed
build bot fail after r263125)
Original commit message:
[ELF] - Consistent spelling for error/warning messages
Previously error and warnings were not consistent in lld.
Some of them started from lowercase letter, others from
uppercase. Also there was one or two which had a dot at the end.
This patch changes all messages to start from uppercase letter if
they were not before.
Differential revision: http://reviews.llvm.org/D18045
llvm-svn: 263240
|
| |
|
|
|
|
|
|
| |
combine to a single (illegal) PSHUFB instruction.
Its not enough that we test for SSSE3 - that's only OK for 128-bit vectors - we also need to test for AVX2 / AVX512BW for 256/512 bit vector cases.
llvm-svn: 263239
|
| |
|
|
| |
llvm-svn: 263238
|
| |
|
|
| |
llvm-svn: 263237
|
| |
|
|
|
|
| |
symbols. NFC.
llvm-svn: 263236
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This doesn't change how many times we construct domtrees in the normal
pipeline, and it removes fragility and instability where basic-aa may
not be run in time to see domtrees because they happen to be constructed
afterward.
This isn't quite as clean as the change to memdep because there is
a mode where basic-aa specifically runs without domtrees -- in the
hacking version used by function-attrs with the legacy pass manager.
llvm-svn: 263234
|
| |
|
|
|
|
|
|
| |
Use the same method to find the cache line as in Read().
Differential Revision: http://reviews.llvm.org/D18050
llvm-svn: 263233
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This doesn't cause us to construct dominator trees any more often in the
normal pipeline, and removes an entire mode of memdep that needed to be
reasoned about and maintained. Perhaps more importantly, it removes the
ability for the results of memdep to be different because of accidental
pass scheduling goofs or the order of evaluation of 'getResult' calls.
Essentially, 'getCachedResult', unless across IR-unit boundaries, is
extremely dangerous. We need to work much harder to avoid it (or its
analog in the old pass manager).
llvm-svn: 263232
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
much to my horror, so use variables to fix it in place.
This terrifies me. Both basic-aa and memdep will provide more precise
information when the domtree and/or the loop info is available. Because
of this, if your pass (like GVN) requires domtree, and then queries
memdep or basic-aa, it will get more precise results. If it does this in
the other order, it gets less precise results.
All of the ideas I have for fixing this are, essentially, terrible. Here
I've just caused us to stop having unspecified behavior as different
implementations evaluate the order of these arguments differently. I'm
actually rather glad that they do, or the fragility of memdep and
basic-aa would have gone on unnoticed. I've left comments so we don't
immediately break this again. This should fix bots whose host compilers
evaluate the order of arguments differently from Clang.
llvm-svn: 263231
|
| |
|
|
| |
llvm-svn: 263230
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Defines instruction itineraries for common MIPSR6 instructions.
Patch by Simon Dardis.
Reviewers: vkalintiris
Subscribers: MatzeB, dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D17198
llvm-svn: 263229
|
| |
|
|
|
|
|
|
| |
It is really odd that Mips differentiates symbols that are born local
and those that become local because of hidden visibility. I don't know
enough mips to known if this is a bug or not.
llvm-svn: 263228
|
| |
|
|
| |
llvm-svn: 263227
|
| |
|
|
| |
llvm-svn: 263226
|
| |
|
|
| |
llvm-svn: 263225
|
| |
|
|
|
|
| |
This is already a simplification, but will allow much more.
llvm-svn: 263224
|
| |
|
|
| |
llvm-svn: 263223
|
| |
|
|
|
|
| |
pr26878 shows a case where locals have to be in the got.
llvm-svn: 263222
|
| |
|
|
|
|
|
|
|
|
|
|
| |
other macros.
Reviewers: bkramer, alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D17958
llvm-svn: 263221
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Reviewers: vkalintiris
Subscribers: dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D16811
llvm-svn: 263220
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This was originally a pointer to support pass managers which didn't use
AnalysisManagers. However, that doesn't realistically come up much and
the complexity of supporting it doesn't really make sense.
In fact, *many* parts of the pass manager were just assuming the pointer
was never null already. This at least makes it much more explicit and
clear.
llvm-svn: 263219
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: dvyukov
Subscribers: jaydeep, sagar, llvm-commits
Differential Revision: http://reviews.llvm.org/D18078
llvm-svn: 263218
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clarify their purpose.
Firstly, call them "...Mixin" types so it is clear that there is no
type hierarchy being formed here. Secondly, use the term 'Info' to
clarify that they aren't adding any interesting *semantics* to the
passes or analyses, just exposing APIs used by the management layer to
get information about the pass or analysis.
Thanks to Manuel for helping pin down the naming confusion here and come
up with effective names to address it.
In case you already have some out-of-tree stuff, the following should be
roughly what you want to update:
perl -pi -e 's/\b(Pass|Analysis)Base\b/\1InfoMixin/g'
llvm-svn: 263217
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
work in the face of the limitations of DLLs and templated static
variables.
This requires passes that use the AnalysisBase mixin provide a static
variable themselves. So as to keep their APIs clean, I've made these
private and befriended the CRTP base class (which is the common
practice).
I've added documentation to AnalysisBase for why this is necessary and
at what point we can go back to the much simpler system.
This is clearly a better pattern than the extern template as it caught
*numerous* places where the template magic hadn't been applied and
things were "just working" but would eventually have broken
mysteriously.
llvm-svn: 263216
|
| |
|
|
|
|
|
|
|
| |
Since the names are used in a loop this does more work in debug builds. In
release builds value names are generally discarded so we don't have to do
the concatenation at all. It's also simpler code, no functional change
intended.
llvm-svn: 263215
|
| |
|
|
|
|
|
| |
That is followup for http://reviews.llvm.org/D18047
patch. initSymbols() moved to Driver.cpp and made static.
llvm-svn: 263214
|