| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
This supports creating symlinks to tools in different directories than
the tool is built to. This is useful for the LLDB framework build which
I’m sending patches for shortly.
llvm-svn: 281788
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
shuffle
As discussed on llvm-dev ( http://lists.llvm.org/pipermail/llvm-dev/2016-August/104210.html ):
turn a vector select with constant condition operand into a shuffle as a canonicalization step.
Shuffles may be easier to reason about in conjunction with other shuffles and insert/extract.
Possible known (minor?) regressions from this change are filed as:
https://llvm.org/bugs/show_bug.cgi?id=28530
https://llvm.org/bugs/show_bug.cgi?id=28531
https://llvm.org/bugs/show_bug.cgi?id=30371
If something terrible happens to perf after this commit, feel free to revert until a backend
fix is in place.
Differential Revision: https://reviews.llvm.org/D24279
llvm-svn: 281787
|
| |
|
|
|
|
|
|
|
|
|
| |
These clean up some unnecessary or instructions in
cases with complex loops.
In the original testcase I noticed this, the same
or with exec was repeated 5 or 6 times in a row. With
this only one is emitted or sometimes a copy.
llvm-svn: 281786
|
| |
|
|
| |
llvm-svn: 281785
|
| |
|
|
|
|
|
|
|
|
| |
This is a fix for PR30318.
Clang may generate IR where an alloca is already live when entering a
BB with lifetime.start. In this case, conservatively extend the
alloca lifetime all the way back to the block entry.
llvm-svn: 281784
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When trying to recolor a register we may split live-ranges in the
process. When we create new live-ranges we will have to process them,
but when we move a register from Assign to Split, the allocation is not
changed until the whole recoloring session is successful.
Therefore, only push the live-ranges that changed from Assign to
Split when the recoloring is successful.
Same as the previous commit, I was not able to produce a test case that
reproduce the problem with in-tree targets.
Note: The bug has been here since the recoloring scheme has been added
back in r200883 (Feb 2014).
llvm-svn: 281783
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is used.
When last chance recoloring is used, the list of NewVRegs may not be
empty when calling selectOrSplitImpl. Indeed, another coloring may have
taken place with splitting/spilling in the same recoloring session.
Relax an assertion to take this into account and adapt a condition to
act as if the NewVRegs were local to this selectOrSplitImpl instance.
Unfortunately I am unable to produce a test case for this, I was only
able to reproduce the conditions on an out-of-tree target.
llvm-svn: 281782
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The main challenge in lowering kernel arguments for AMDGPU is determing the
memory type of the argument. The generic calling convention code assumes
that only legal register types can be stored in memory, but this is not the
case for AMDGPU.
This consolidates all the logic AMDGPU uses for deducing memory types into a single
function. This will make it much easier to support different ABIs in the future.
Reviewers: arsenm
Subscribers: arsenm, wdng, nhaehnle, llvm-commits, yaxunl
Differential Revision: https://reviews.llvm.org/D24614
llvm-svn: 281781
|
| |
|
|
| |
llvm-svn: 281780
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
mesa3d will use the same kernel calling convention as amdhsa, but it will
handle everything else like the default 'unknown' OS type.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: https://reviews.llvm.org/D22783
llvm-svn: 281779
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This matches gold and bfd, and is pretty much required by some linker
scripts. They end with commands like
foo 0 : { *(bar) }
if we put any SHF_ALLOC sections after they can have an address that
is too low.
llvm-svn: 281778
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(PR24942)
computeKnownBits() already works for integer vectors, so allow vector types when calling that from InstCombine.
I don't think the change to use m_APInt in computeKnownBits is strictly necessary because we do check for
ConstantVector later, but it's more efficient to handle the splat case without needing to loop on vector elements.
This should work with InstSimplify, but doesn't yet, so I made that a FIXME comment on the test for PR24942:
https://llvm.org/bugs/show_bug.cgi?id=24942
Differential Revision: https://reviews.llvm.org/D24677
llvm-svn: 281777
|
| |
|
|
|
|
| |
Because it corresponds to SORT_NONE. None was renamed Default.
llvm-svn: 281776
|
| |
|
|
|
|
|
| |
This matches bfd behavior. It also makes future changes simpler as we
don't have to worry about ignoring these commands in multiple places
llvm-svn: 281775
|
| |
|
|
|
|
|
| |
This is supposed to be a drop in replacement for what lld
provides via --lto-newpm-aa-pipeline.
llvm-svn: 281774
|
| |
|
|
|
|
| |
Make the function's declared type match its (lack of) return type
llvm-svn: 281773
|
| |
|
|
|
|
| |
We have to look at all the relevant input sections at once.
llvm-svn: 281772
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes Bug 30385 - SORT_NONE not implemented,
`SORT_NONE' disables section sorting by ignoring the command line
section sorting option.
That is why this patch also implements --sort-section option.
Description of sorting rules
available at https://sourceware.org/binutils/docs/ld/Input-Section-Wildcards.html
Differential revision: https://reviews.llvm.org/D24604
llvm-svn: 281771
|
| |
|
|
| |
llvm-svn: 281770
|
| |
|
|
| |
llvm-svn: 281769
|
| |
|
|
|
|
| |
Some work great and others currently demonstrate the anti-vector bias prevalent in DAGCombiner
llvm-svn: 281768
|
| |
|
|
|
|
|
|
|
| |
gcc and clang in gcc compatibility mode do not accept __forceinline. Use
the gcc attribute for them instead.
Differential Revision: https://reviews.llvm.org/D24678
llvm-svn: 281766
|
| |
|
|
|
|
|
| |
Patch by Walter Erquinigo
Differential Revision: https://reviews.llvm.org/D24283
llvm-svn: 281765
|
| |
|
|
|
|
|
| |
Also provided a StringRef overload for these functions and have
the const char* overloads delegate to the StringRef overload.
llvm-svn: 281764
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When LLVM_LINK_LLVM_DYLIB is set, the libLLVM shared
library needs to be installed in the toolchain. Without
this chanage LLVM_INSTALL_TOOLCHAIN_ONLY combined with
LLVM_LINK_LLVM_DYLIB results in a broken install.
Patch by Sam Clegg
Differential Revision: https://reviews.llvm.org/D24676
llvm-svn: 281763
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recommitting after fixing AsmParser initialization and X86 inline asm
error cleanup.
Allow errors to be deferred and emitted as part of clean up to simplify
and shorten Assembly parser code. This will allow error messages to be
emitted in helper functions and be modified by the caller which has
better context.
As part of this many minor cleanups to the Parser:
* Unify parser cleanup on error
* Add Workaround for incorrect return values in ParseDirective instances
* Tighten checks on error-signifying return values for parser functions
and fix in-tree TargetParsers to be more consistent with the changes.
* Fix AArch64 test cases checking for spurious error messages that are
now fixed.
These changes should be backwards compatible with current Target Parsers
so long as the error status are correctly returned in appropriate
functions.
Reviewers: rnk, majnemer
Subscribers: aemerson, jyknight, llvm-commits
Differential Revision: https://reviews.llvm.org/D24047
llvm-svn: 281762
|
| |
|
|
| |
llvm-svn: 281760
|
| |
|
|
| |
llvm-svn: 281759
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D24204
llvm-svn: 281758
|
| |
|
|
|
|
|
|
| |
Avoids losing GlobalsAA in the standard pass pipeline.
Differential Revision: https://reviews.llvm.org/D24094
llvm-svn: 281757
|
| |
|
|
| |
llvm-svn: 281756
|
| |
|
|
| |
llvm-svn: 281755
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of a input section description."
With fix for 2 bots. Details about the fix performed is on a review page.
Initial commit message:
This is PR30387:
From PR description:
We fail to parse
SECTIONS
{
foo :
{
*(sec0 EXCLUDE_FILE (zed1.o) sec1 EXCLUDE_FILE (zed2.o) sec2 )
}
}
The semantics according to bfd are:
Include sec1 from every file but zed1.o
Include sec2 from every file but zed2.o
Include sec0 from every file
Patch implements the support.
Differential revision: https://reviews.llvm.org/D24650
llvm-svn: 281754
|
| |
|
|
| |
llvm-svn: 281753
|
| |
|
|
| |
llvm-svn: 281752
|
| |
|
|
|
|
|
|
|
|
|
| |
The use of nm in the new tests added with r281725 caused a couple
of bot failures:
http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/15701
http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/6939
Use llvm-nm instead.
llvm-svn: 281750
|
| |
|
|
|
|
| |
was "used" but not used.
llvm-svn: 281749
|
| |
|
|
|
|
| |
accordingly.
llvm-svn: 281748
|
| |
|
|
|
|
| |
build
llvm-svn: 281747
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This value is already defaulted to true in asan_internal.h.
Allow the value to be overriden in cases where exceptions are unavailable.
Reviewers: kcc, samsonov, compnerd
Subscribers: kubabrecka, dberris, beanz, mgorny, llvm-commits
Differential Revision: https://reviews.llvm.org/D24633
llvm-svn: 281746
|
| |
|
|
| |
llvm-svn: 281745
|
| |
|
|
|
|
|
|
|
|
|
| |
as well
A follow-up patch will rename this pass and the source file accordingly,
but I figured the non-NFC change will be easier to spot in isolation.
Differential Revision: https://reviews.llvm.org/D24641
llvm-svn: 281744
|
| |
|
|
| |
llvm-svn: 281743
|
| |
|
|
| |
llvm-svn: 281742
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D24617
llvm-svn: 281741
|
| |
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D24450
llvm-svn: 281740
|
| |
|
|
| |
llvm-svn: 281739
|
| |
|
|
| |
llvm-svn: 281738
|
| |
|
|
|
|
| |
These should have all their operands - even scalars - go on FPR.
llvm-svn: 281737
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This fixes pr30367, but more importantly, it changes how we compute offsets.
Now offset computation in a walk over linker script commands, like the
rest of assignAddresses. IMHO this is simpler to understand and if we
ever have to create multiple outputsections or chunks to change how we
handle test/ELF/linkerscript/alternate-sections.s it should be easier
to do it.
llvm-svn: 281736
|