| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Kill-flags, which computeRegisterLiveness uses, are not reliable.
LivePhysRegs is.
Differential Revision: http://reviews.llvm.org/D19472
llvm-svn: 267495
|
| |
|
|
| |
llvm-svn: 267493
|
| |
|
|
|
|
|
| |
While we're here, fix the comment and variable names to make it
clear that these are raw weights, not percentages.
llvm-svn: 267491
|
| |
|
|
|
|
|
|
| |
Autoconf used to support setting LLVM_VERSION_INFO and there is some code filtered around llvm in Support/CommandLine.cpp and LTO/LTOCodeGenerator.cpp that uses it if it is set.
We also shouldn't be explicitly setting it as a define on llvm-shlib. It is pointless there because there is no code using it in llvm-shlib, and it is better to have it as part of the generated config.h so that it is available everywhere.
llvm-svn: 267490
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SparcV8 fneg and fabs instructions interestingly come only in a
single-float variant. Since the sign bit is always the topmost bit no
matter what size float it is, you simply operate on the high
subregister, as if it were a single float.
However, the layout of double-floats in the float registers is reversed
on little-endian CPUs, so that the high bits are in the second
subregister, rather than the first.
Thus, this expansion must check the endianness to use the correct
subregister.
llvm-svn: 267489
|
| |
|
|
|
|
| |
Otherwise the linker has no idea what should be resolved.
llvm-svn: 267488
|
| |
|
|
| |
llvm-svn: 267487
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D19450
llvm-svn: 267485
|
| |
|
|
| |
llvm-svn: 267484
|
| |
|
|
| |
llvm-svn: 267483
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch is what was the "instcombine" portion of D14185, with an additional
test added (see julia_pseudovec in test/Transforms/InstCombine/insert-val-extract-elem.ll).
The patch causes instcombine to replace sequences of extractelement-insertvalue-store
that act essentially like a bitcast followed by a store.
Differential review: http://reviews.llvm.org/D14260
llvm-svn: 267482
|
| |
|
|
|
|
| |
happens [NFC]
llvm-svn: 267481
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D19449
llvm-svn: 267480
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D19394
llvm-svn: 267479
|
| |
|
|
| |
llvm-svn: 267476
|
| |
|
|
|
|
|
| |
Commit r267457 made a lot of type-substitutions threw off code formatting and
alignment. This patch should tidy those changes up.
llvm-svn: 267475
|
| |
|
|
|
|
|
| |
The linker needs to know that the symbols are thread-local to do its job
properly.
llvm-svn: 267473
|
| |
|
|
|
|
|
|
| |
Add a typedef for the std::map<GlobalValue::GUID, GlobalValueSummary *>
map that is passed around to identify summaries for values defined in a
particular module. This shortens up declarations in a variety of places.
llvm-svn: 267471
|
| |
|
|
| |
llvm-svn: 267469
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
log2(Mask) is smaller than 32, we must use the 32-bit variant because the 64-bit
variant cannot encode it. Therefore, set the subreg part accordingly.
[AArch64] Fix optimizeCondBranch logic.
The opcode for the optimized branch does not depend on the size
of the activate bits in the AND masks, but the AND opcode itself.
Indeed, we need to use a X or W variant based on the AND variant
not based on whether the mask fits into the related variant.
Otherwise, we may end up using the W variant of the optimized branch
for 64-bit register inputs!
This fixes the last make check verifier issues for AArch64: PR27479.
llvm-svn: 267465
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The expression is redundant on both side of operator |.
detected by : http://reviews.llvm.org/D19451
Reviewers: rnk, majnemer
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D19459
llvm-svn: 267458
|
| |
|
|
|
|
|
|
|
|
| |
This replaces use of std::error_code and ErrorOr in the ORC RPC support library
with Error and Expected. This required updating the OrcRemoteTarget API, Client,
and server code, as well as updating the Orc C API.
This patch also fixes several instances where Errors were dropped.
llvm-svn: 267457
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Use the operand for how long to wait. This is somewhat
distasteful, since it would be better to just emit s_nop
with the right argument in the first place. This would require
changing TII::insertNoop to emit N operands, which would be easy.
Slightly more problematic is the post-RA scheduler and hazard recognizer
represent nops as a single null node, and would require inventing
another way of representing N nops.
llvm-svn: 267456
|
| |
|
|
| |
llvm-svn: 267455
|
| |
|
|
| |
llvm-svn: 267452
|
| |
|
|
| |
llvm-svn: 267451
|
| |
|
|
| |
llvm-svn: 267450
|
| |
|
|
|
|
| |
Also reorder case to match enum order
llvm-svn: 267449
|
| |
|
|
|
|
| |
from working with reference types.
llvm-svn: 267448
|
| |
|
|
|
|
| |
There has been much recent confusion about the partition in the lattice between constant and non-constant values. Hopefully, documenting this will prevent confusion going forward.
llvm-svn: 267440
|
| |
|
|
|
|
| |
This function handled both unary and binary operators. Cloning and specializing leads to much easier to follow code with minimal duplicatation.
llvm-svn: 267438
|
| |
|
|
|
|
|
|
|
|
| |
Fix early exit from linkInModule. IRMover::move returns false on
success and true on error.
Add a few more cases of merged common linkage variables with
different sizes and alignments.
llvm-svn: 267437
|
| |
|
|
| |
llvm-svn: 267436
|
| |
|
|
|
|
| |
Remember to svn add the new file.
llvm-svn: 267435
|
| |
|
|
| |
llvm-svn: 267434
|
| |
|
|
|
|
| |
Do not mark them as modifying any of the volatile registers by default.
llvm-svn: 267433
|
| |
|
|
|
|
| |
a const.
llvm-svn: 267432
|
| |
|
|
|
|
|
| |
This fixes a number of endianness issues as well as an ODR
violation that hopefully causes everything to be happy.
llvm-svn: 267431
|
| |
|
|
| |
llvm-svn: 267430
|
| |
|
|
| |
llvm-svn: 267429
|
| |
|
|
|
|
|
| |
It also seems to be unused. Get rid of it.
Thanks to Rafael for pointing out.
llvm-svn: 267428
|
| |
|
|
|
|
|
|
|
|
| |
Until PR27449 (https://llvm.org/bugs/show_bug.cgi?id=27449) is fixed in
clang this warning is pointless, since ASTFileSignatures will change
randomly when a module is rebuilt.
rdar://problem/25610919
llvm-svn: 267427
|
| |
|
|
| |
llvm-svn: 267426
|
| |
|
|
|
|
| |
Previously findClosestSuitableAluInstr was only considering the base register when checking the current instruction for suitability. Expand check to consider the offset if the offset is a register.
llvm-svn: 267424
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
visitAND, when folding and (load) forgets to check which output of
an indexed load is involved, happily folding the updated address
output on the following testcase:
target datalayout = "e-m:e-i64:64-n32:64"
target triple = "powerpc64le-unknown-linux-gnu"
%typ = type { i32, i32 }
define signext i32 @_Z8access_pP1Tc(%typ* %p, i8 zeroext %type) {
%b = getelementptr inbounds %typ, %typ* %p, i64 0, i32 1
%1 = load i32, i32* %b, align 4
%2 = ptrtoint i32* %b to i64
%3 = and i64 %2, -35184372088833
%4 = inttoptr i64 %3 to i32*
%_msld = load i32, i32* %4, align 4
%zzz = add i32 %1, %_msld
ret i32 %zzz
}
Fix this by checking ResNo.
I've found a few more places that currently neglect to check for
indexed load, and tightened them up as well, but I don't have test
cases for them. In fact, they might not be triggerable at all,
at least with current targets. Still, better safe than sorry.
Differential Revision: http://reviews.llvm.org/D19202
llvm-svn: 267420
|
| |
|
|
|
|
| |
Commit r267137 was the reason for failing tests in LLVM test suite.
llvm-svn: 267419
|
| |
|
|
|
|
| |
Commit r266977 was reason for failing LLVM test suite with error message: fatal error: error in backend: Cannot select: t17: i32 = rotr t2, t11 ...
llvm-svn: 267418
|
| |
|
|
| |
llvm-svn: 267417
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The expression is detected as a redundant expression.
Turn out, this is probably a bug.
```
/home/etienneb/llvm/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:306:26: warning: both side of operator are equivalent [misc-redundant-expression]
if (isSMRD(*FirstLdSt) && isSMRD(*FirstLdSt)) {
```
Reviewers: rnk, tstellarAMD
Subscribers: arsenm, cfe-commits
Differential Revision: http://reviews.llvm.org/D19460
llvm-svn: 267415
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
successors
We didn't have logic to correctly handle CFGs where there was more than
one EH-pad successor (these are novel with WinEH).
There were situations where a register was live in one exceptional
successor but not another but the code as written would only consider
the first exceptional successor it found.
This resulted in split points which were insufficiently early if an
invoke was present.
This fixes PR27501.
N.B. This removes getLandingPadSuccessor.
llvm-svn: 267412
|