| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
src1 doesn't have modifiers, but the operand was missing
resulting in an encoding build error when all fields
are required.'
llvm-svn: 229611
|
| |
|
|
|
|
|
| |
Rename the multiclass since it now applies to the output
modifiers as well.
llvm-svn: 229610
|
| |
|
|
| |
llvm-svn: 229609
|
| |
|
|
| |
llvm-svn: 229608
|
| |
|
|
| |
llvm-svn: 229607
|
| |
|
|
|
|
|
| |
Set the ignored field to 0 so we can enable
noNamedPositionallyEncodedOperands.
llvm-svn: 229606
|
| |
|
|
| |
llvm-svn: 229605
|
| |
|
|
| |
llvm-svn: 229604
|
| |
|
|
| |
llvm-svn: 229603
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Have the InstrProfWriter return a MemoryBuffer instead of a
std::string. This fixes the alignment issues the reader would hit, and
it's a more appropriate type for this anyway.
I've also removed an ugly helper function that's not needed since
we're allowing initializer lists now, and updated some error code
checks based on MSVC's issues with r229473.
This reverts r229483, reapplying r229478.
llvm-svn: 229602
|
| |
|
|
|
|
| |
Those parameters did not necessarily describe kill points but just uses.
llvm-svn: 229601
|
| |
|
|
|
|
|
|
|
|
|
| |
extensions.
This change also removes `DEBUG(dbgs() << "SCEV: untested prestart
overflow check\n");` because that case has a unit test now.
Differential Revision: http://reviews.llvm.org/D7645
llvm-svn: 229600
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
initialization. Initialize the subtarget once per function and
migrate EmitStartOfAsmFile to either use calls on the
TargetMachine or get information from the subtarget we'd use
for assembling.
The top-level-ness of the MIPS attribute output for assembly is,
by nature, contrary to how we'd want to do this for an LTO
situation where we have multiple cpu architectures so this
solution is good enough for now.
llvm-svn: 229596
|
| |
|
|
| |
llvm-svn: 229595
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I could not come up with a test case for this one; but I don't think
`getPreStartForSignExtend` can assume `AR` is `nsw` -- there is one
place in scalar evolution that calls `getSignExtendAddRecStart(AR,
...)` without proving that `AR` is `nsw`
(line 1564)
OperandExtendedAdd =
getAddExpr(WideStart,
getMulExpr(WideMaxBECount,
getZeroExtendExpr(Step, WideTy)));
if (SAdd == OperandExtendedAdd) {
// If AR wraps around then
//
// abs(Step) * MaxBECount > unsigned-max(AR->getType())
// => SAdd != OperandExtendedAdd
//
// Thus (AR is not NW => SAdd != OperandExtendedAdd) <=>
// (SAdd == OperandExtendedAdd => AR is NW)
const_cast<SCEVAddRecExpr *>(AR)->setNoWrapFlags(SCEV::FlagNW);
// Return the expression with the addrec on the outside.
return getAddRecExpr(getSignExtendAddRecStart(AR, Ty, this),
getZeroExtendExpr(Step, Ty),
L, AR->getNoWrapFlags());
}
Differential Revision: http://reviews.llvm.org/D7640
llvm-svn: 229594
|
| |
|
|
| |
llvm-svn: 229590
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch teaches fast-isel how to select a (V)CVTSI2SSrr for an integer to
float conversion, and how to select a (V)CVTSI2SDrr for an integer to double
conversion.
Added test 'fast-isel-int-float-conversion.ll'.
Differential Revision: http://reviews.llvm.org/D7698
llvm-svn: 229589
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The problem in the original patch was not switching back to .text after printing
an eh table.
Original message:
On ELF, put PIC jump tables in a non executable section.
Fixes PR22558.
llvm-svn: 229586
|
| |
|
|
|
|
| |
Suggestion by Simon Pilgrim
llvm-svn: 229574
|
| |
|
|
|
|
|
| |
Simplify the code. It has been a while since the schema has been so
"flexible".
llvm-svn: 229573
|
| |
|
|
|
|
|
|
|
|
| |
Previously `DwarfExpression::AddExpression()` relied on
default-constructing the end iterators for `DIExpression` -- once the
operands are represented explicitly via `MDExpression` (instead of via
the strange `StringRef` navigator in `DIHeaderIterator`) this won't
work. Explicitly take an iterator for the end of the range.
llvm-svn: 229572
|
| |
|
|
|
|
|
|
| |
Added commuted unpckl/unpckh shuffle matching patterns as many cases containing undefined lanes fail to commute by themselves.
Differential Revision: http://reviews.llvm.org/D7564
llvm-svn: 229571
|
| |
|
|
|
|
|
| |
This is paraphrased from Simon Pilgrim's comment in:
http://reviews.llvm.org/D7492
llvm-svn: 229566
|
| |
|
|
| |
llvm-svn: 229558
|
| |
|
|
| |
llvm-svn: 229549
|
| |
|
|
|
|
|
|
|
|
| |
Add support for having multiple sections with the same name and comdat.
Using this in combination with -ffunction-sections allows LLVM to output a .o
file with mulitple sections named .text. This saves space by avoiding long
unique names of the form .text.<C++ mangled name>.
llvm-svn: 229541
|
| |
|
|
|
|
|
|
|
|
| |
Original message:
Invert the section relocation map.
It now points from rel section to section. Use it to set sh_info, avoiding
a brittle name lookup.
llvm-svn: 229539
|
| |
|
|
|
|
|
|
| |
Original message:
Use the existing SymbolTableIndex instead of doing a lookup. NFC.
llvm-svn: 229538
|
| |
|
|
|
|
|
|
|
|
| |
Original message:
Create the Seciton -> Rel Section map when it is first needed. NFC.
Saves a walk over every section.
llvm-svn: 229536
|
| |
|
|
|
|
|
| |
We were trying to fold into implicit uses, which led to out of bounds
access of the MCInstrDesc::OpInfo arrray.
llvm-svn: 229533
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the memory operands in sse12_fp_packed_scalar_logical_alias from scalars to vectors.
That's what the hardware packed logical FP instructions define: 128-bit memory operands.
There are no scalar versions of these instructions...because this is x86.
Generating the wrong code (folding a scalar load into a 128-bit load) is still possible
using the peephole optimization pass and the load folding tables. We won't completely
solve this bug until we either fix the lowering in fabs/fneg/fcopysign and any other
places where scalar FP logic is created or fix the load folding in foldMemoryOperandImpl()
to make sure it isn't changing the size of the load.
Differential Revision: http://reviews.llvm.org/D7474
llvm-svn: 229531
|
| |
|
|
|
|
| |
Hard to test given the undefined behavior nature.
llvm-svn: 229530
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
initialization. Initialize the subtarget once per function and
migrate Emit{Start|End}OfAsmFile to either use attributes on the
TargetMachine or get information from the subtarget we'd use
for assembling. One bit (getISAEncoding) touched the general
AsmPrinter and the debug output. Handle this one by passing
the function for the subprogram down and updating all callers
and users.
The top-level-ness of the ARM attribute output for assembly is,
by nature, contrary to how we'd want to do this for an LTO
situation where we have multiple cpu architectures so this
solution is good enough for now.
llvm-svn: 229528
|
| |
|
|
| |
llvm-svn: 229527
|
| |
|
|
|
|
|
|
| |
Tested in clang/test/CodeGenObjCCXX/debug-info-cyclic.mm
rdar://problem/19839612
llvm-svn: 229521
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 64-bit MIPS ELF archive file format is used by MIPS64 targets.
The main difference from a regular archive file is the symbol table format:
1. ar_name is equal to "/SYM64/"
2. number of symbols and offsets are 64-bit integers
http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf
Page 96
The patch allows reading of such archive files by llvm-nm, llvm-objdump
and other tools. But it does not support archive files with number of symbols
and/or offsets exceed 2^32. I think it is a rather rare case requires more
significant modification of `Archive` class code.
http://reviews.llvm.org/D7546
llvm-svn: 229520
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-on patch to:
http://reviews.llvm.org/D7093
That patch canonicalized constant splats as build_vectors,
and this patch removes the constant check so we can canonicalize
all splats as build_vectors.
This fixes the 2nd test case in PR22283:
http://llvm.org/bugs/show_bug.cgi?id=22283
The unfortunate code duplication between SelectionDAG and DAGCombiner
is discussed in the earlier patch review. At least this patch is just
removing code...
This improves an existing x86 AVX test and changes codegen in an ARM test.
Differential Revision: http://reviews.llvm.org/D7389
llvm-svn: 229511
|
| |
|
|
| |
llvm-svn: 229507
|
| |
|
|
|
|
| |
Same functionality, but hoists the vector growth out of the loop.
llvm-svn: 229500
|
| |
|
|
|
|
|
|
|
|
| |
The problem was in store-sink barrier check.
Store sink barrier should be checked for ModRef (read-write) mode.
http://llvm.org/bugs/show_bug.cgi?id=22613
llvm-svn: 229495
|
| |
|
|
| |
llvm-svn: 229494
|
| |
|
|
| |
llvm-svn: 229493
|
| |
|
|
|
|
|
|
|
| |
GCC 4.8 reported two new warnings due to comparisons
between signed and unsigned integer expressions. The new warnings were
accidentally introduced by revision 229480.
Added explicit casts to silence the warnings. No functional change intended.
llvm-svn: 229488
|
| |
|
|
|
|
|
|
|
|
| |
This added API to the InstrProfWriter to write to a string so I could
write unittests without using temp files. This doesn't really work,
since the format has tighter alignment requirements than a char.
This reverts r229478 and its follow-up, r229481.
llvm-svn: 229483
|
| |
|
|
|
|
|
|
| |
- added mask types v8i1 and v16i1 to possible function parameters
- enabled passing 512-bit vectors in standard CC
- added a test for KNL intel_ocl_bi conventions
llvm-svn: 229482
|
| |
|
|
|
|
|
|
|
|
| |
Vector zext tends to get legalized into a vector anyext, represented as a vector shuffle with an undef vector + a bitcast, that gets ANDed with a mask that zeroes the undef elements.
Combine this into an explicit shuffle with a zero vector instead. This allows shuffle lowering to match it as a zext, instead of matching it as an anyext and emitting an explicit AND.
This combine only covers a subset of the cases, but it's a start.
Differential Revision: http://reviews.llvm.org/D7666
llvm-svn: 229480
|
| |
|
|
|
|
|
|
| |
Add these tests again, but use va_list instead of initializer lists.
This reverts r229456, reapplying r229455.
llvm-svn: 229478
|
| |
|
|
|
|
|
|
|
| |
initialization. Initialize the subtarget once per function and
migrate EmitStartOfAsmFile to either use attributes on the
TargetMachine or get information from all of the various
subtargets.
llvm-svn: 229475
|
| |
|
|
| |
llvm-svn: 229472
|
| |
|
|
|
|
|
| |
This required changing how the computation of the ABI is handled
and how some of the checks for ABI/target are done.
llvm-svn: 229471
|