| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
Clang has better diagnostics in this case. It is not necessary therefore
to change the destructor to avoid what is effectively an invalid warning
in gcc. Instead, better handle the warning flags given to the compiler.
llvm-svn: 255905
|
| |
|
|
| |
llvm-svn: 255903
|
| |
|
|
|
|
|
|
|
|
| |
These days relocations are created and stored in a deterministic way.
The order they are created is also suitable for the .o file, so we don't
need an explicit sort.
The last remaining exception is MIPS.
llvm-svn: 255902
|
| |
|
|
|
|
| |
This reverts commit r255896. It broke the tests.
llvm-svn: 255899
|
| |
|
|
|
|
|
| |
Every target changing sortRelocs was first calling the parent
implementation. Just run that first.
llvm-svn: 255898
|
| |
|
|
| |
llvm-svn: 255897
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch enables PostRAScheduler specifically for AArch64 generic build,
which is beneficial from the performance perspective.
Speedups up to 2 to 7% for some benchmarks on A57 and A53 are observed.
Also benchmarks from LLVM test-suite did not regress.
Differential Revision: http://reviews.llvm.org/D15557
llvm-svn: 255896
|
| |
|
|
|
|
|
|
|
|
| |
This patch adds a DAG combine for (any_extend (extract_vector_elt v, i)) ->
(extract_vector_elt v, i). The combine enables us to better match some SMOV
patterns.
Differential Revision: http://reviews.llvm.org/D15515
llvm-svn: 255895
|
| |
|
|
| |
llvm-svn: 255894
|
| |
|
|
|
|
|
|
|
|
| |
The method processFunction() is called to decide if a graph should be shown for
a certain function. To allow DOTGraphTraitViewers to take this decision based
on the analysis results for the given function, we forward a reference to the
analysis result. This will be used by Polly to only visualize functions where
interesting loop regions have been detected.
llvm-svn: 255889
|
| |
|
|
|
|
|
| |
Add option to enable/disable LEA optimization pass. By default the pass is disabled.
Differential Revision: http://reviews.llvm.org/D15573
llvm-svn: 255881
|
| |
|
|
| |
llvm-svn: 255877
|
| |
|
|
|
|
| |
This is in preparation to an upcoming patch.
llvm-svn: 255872
|
| |
|
|
| |
llvm-svn: 255871
|
| |
|
|
|
|
|
|
|
| |
This creates the initial infrastructure for writing ELF output files. It
doesn't yet have any implementation for encoding instructions.
Differential Revision: http://reviews.llvm.org/D15555
llvm-svn: 255869
|
| |
|
|
|
|
|
|
|
|
| |
This is a quick fix to PR25838. The issue comes from the restriction that we
cannot normalize probabilities containing both known and unknown ones. A patch
that removes this restriction is under the review now:
http://reviews.llvm.org/D15548
llvm-svn: 255867
|
| |
|
|
|
|
|
|
|
|
| |
Introduce a new class InstrProfSymtab to abstract
the PGO symbol table for prof and coverage reader.
The symtab is is to lookup function's PGO name
using function keys. The first user of the class
is CoverageMapping Reader. More will follow.
llvm-svn: 255862
|
| |
|
|
|
|
| |
We now have 240 expected failures.
llvm-svn: 255858
|
| |
|
|
| |
llvm-svn: 255852
|
| |
|
|
| |
llvm-svn: 255847
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Implement eliminateCallFramePsuedo to handle ADJCALLSTACKUP/DOWN
pseudo-instructions. Add a test calling a vararg function which causes non-0
adjustments. This revealed an issue with RegisterCoalescer wherein it
eliminates a COPY from SP32 to a vreg but failes to update the live ranges
of EXPR_STACK, causing a machineinstr verifier failure (so this test
is commented out).
Also add a dynamic alloca test, which causes a callseq_end dag node with
a 0 (instead of undef) second argument to be generated. We currently fail to
select that, so adjust the ADJCALLSTACKUP tablegen code to handle it.
Differential Revision: http://reviews.llvm.org/D15587
llvm-svn: 255844
|
| |
|
|
|
|
|
| |
Passing in a std::unique_ptr should help find errors when the module
is used after being linked into another module.
llvm-svn: 255842
|
| |
|
|
| |
llvm-svn: 255841
|
| |
|
|
|
|
|
|
|
|
|
| |
It looks like the code this patch deletes is based on a misunderstanding of
what guarantees writev provides. In particular, writev with 1 iovec is
not "more atomic" than a write.
Testing on OS X shows that both write and writev from multiple processes
can be intermixed.
llvm-svn: 255837
|
| |
|
|
|
|
| |
We don't need static_casts when we use the right Subtarget.
llvm-svn: 255836
|
| |
|
|
| |
llvm-svn: 255834
|
| |
|
|
| |
llvm-svn: 255831
|
| |
|
|
|
|
|
|
| |
This matches the other MIB methods, none of which modify the builder.
Without this, we can't chain copyImplicitOps.
Also reformat the few users, in PPCEarlyReturn.
llvm-svn: 255828
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Surface counter overflow when merging profile data. Merging still occurs on overflow but counts saturate to the maximum representable value. Overflow is reported to the user.
Reviewers: davidxl, dnovillo, silvas
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D15547
llvm-svn: 255825
|
| |
|
|
|
|
| |
Fixes variable name from r255779.
llvm-svn: 255824
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The access function has a short entry and a short exit, the initialization
block is only run the first time. To improve the performance, we want to
have a short frame at the entry and exit.
We explicitly handle most of the CSRs via copies. Only the CSRs that are not
handled via copies will be in CSR_SaveList.
Frame lowering and prologue/epilogue insertion will generate a short frame
in the entry and exit according to CSR_SaveList. The majority of the CSRs will
be handled by register allcoator. Register allocator will try to spill and
reload them in the initialization block.
We add CSRsViaCopy, it will be explicitly handled during lowering.
1> we first set FunctionLoweringInfo->SplitCSR if conditions are met (the target
supports it for the given machine function and the function has only return
exits). We also call TLI->initializeSplitCSR to perform initialization.
2> we call TLI->insertCopiesSplitCSR to insert copies from CSRsViaCopy to
virtual registers at beginning of the entry block and copies from virtual
registers to CSRsViaCopy at beginning of the exit blocks.
3> we also need to make sure the explicit copies will not be eliminated.
The target independent portion was committed as r255353.
rdar://problem/23557469
Differential Revision: http://reviews.llvm.org/D15341
llvm-svn: 255821
|
| |
|
|
| |
llvm-svn: 255820
|
| |
|
|
|
|
|
|
|
| |
Update supportSplitCSR's interface to take machine function instead of the
calling convention.
Review comments for http://reviews.llvm.org/D15341
llvm-svn: 255818
|
| |
|
|
| |
llvm-svn: 255817
|
| |
|
|
| |
llvm-svn: 255816
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15546
llvm-svn: 255815
|
| |
|
|
| |
llvm-svn: 255811
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15427
llvm-svn: 255810
|
| |
|
|
| |
llvm-svn: 255807
|
| |
|
|
|
|
| |
This reverts commit r255762.
llvm-svn: 255806
|
| |
|
|
|
|
|
| |
If a branch both branches to and falls through to the same block, treat it as
an explicit branch.
llvm-svn: 255803
|
| |
|
|
|
|
|
|
|
|
|
| |
As of r255720, the loop pass manager will DTRT when passes update the
loop info for removed loops, so they no longer need to reach into
LPPassManager APIs to do this kind of transformation. This change very
nearly removes the need for the LPPassManager to even be passed into
loop passes - the only remaining pass that uses the LPM argument is
LoopUnswitch.
llvm-svn: 255797
|
| |
|
|
|
|
| |
The default cost was 0 with the assumption that it is predictable.
llvm-svn: 255796
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
increase
Summary:
This patch adds a function called getRegPressureSetScore() to
TargetRegisterInfo. The MachineScheduler uses this when comparing
instruction that increase the register pressure of different sets
to determine which set is safer to increase.
This hook is useful for GPU targets where the number of registers in the
class is not the best metric for determing which presser set is safer to
increase.
Future work may include adding more parameters to this function, like
for example, the current pressure level of the set or the amount that
the pressure will be increased/decreased.
Reviewers: qcolombet, escha, arsenm, atrick, MatzeB
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14806
llvm-svn: 255795
|
| |
|
|
|
|
| |
Bootstrapping clang to generate PGO data (patches coming soon), requires llvm-profdata targets to be generated before clang.
llvm-svn: 255794
|
| |
|
|
|
|
| |
Relands r255790 with fixed tests.
llvm-svn: 255793
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When considering incoming values as part of a reduction phi, ensure the
incoming value is dominated by said phi.
Failing to ensure this property causes miscompiles.
Fixes PR25787.
Many thanks to Mattias Eriksson for reporting, reducing and analyzing the
problem for me.
Differential Revision: http://reviews.llvm.org/D15580
llvm-svn: 255792
|
| |
|
|
|
|
| |
This reverts commit r255790.
llvm-svn: 255791
|
| |
|
|
| |
llvm-svn: 255790
|
| |
|
|
|
|
|
|
|
| |
This generates a compile_commands.json file, which tells tools like
YouCompleteMe and clang_complete exactly how to build each source file.
Patch by Justin Lebar!
llvm-svn: 255789
|