| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
LoopAccessAnalysis will be used as the name of the pass.
This is part of the patchset that converts LoopAccessAnalysis into an
actual analysis pass.
llvm-svn: 229621
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since VectorizationReport will be part of the result of the analysis it
will be stored in a container. However, one of its members is a
raw_string_ostream which cannot be copy-constructed.
This makes the raw_string_ostream local to the << operator.
This is part of the patchset that converts LoopAccessAnalysis into an
actual analysis pass.
llvm-svn: 229620
|
| |
|
|
|
|
|
|
|
|
|
| |
InstCombiner::visitGetElementPtrInst was using getFirstNonPHI to compute the
insertion point, which caused the verifier to complain when a GEP was inserted
before a landingpad instruction. This commit fixes it to use getFirstInsertionPt
instead.
rdar://problem/19394964
llvm-svn: 229619
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When visiting the initial list of "root" instructions (those which must always
be alive), for those that are integer-valued (such as invokes returning an
integer), we mark their bits as (initially) all dead (we might, obviously, find
uses of those bits later, but all bits are assumed dead until proven
otherwise). Don't do so, however, if we're already seen a use of those bits by
another root instruction (such as a store).
Fixes a miscompile of the sanitizer unit tests on x86_64.
Also, add a debug line for visiting the root instructions, and remove a debug
line which tried to print instructions being removed (printing dead
instructions is dangerous, and can sometimes crash).
llvm-svn: 229618
|
| |
|
|
|
|
| |
The docs call this vdst instead of just dst.
llvm-svn: 229614
|
| |
|
|
|
|
|
|
|
|
| |
Some formats capitalized these, but most didn't. Change
them all to be consistently lowercase.
Now, non-encoding fields and convenience bits are capitalized.
Also remove weird looking empty line in some of the formats.
llvm-svn: 229613
|
| |
|
|
| |
llvm-svn: 229612
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
more useful output. No more null bytes printed, and now with a newline.
llvm-svn: 229599
|
| |
|
|
|
|
|
| |
Instead of requiring MSVC 2013 U4, we simply warn users, since some might
not bt able to immediately upgrade.
llvm-svn: 229598
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 229591
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
Previous versions of MSVC 2013 would miscompile ASTMatchers (and/or their
tests). Bump up the requirement and make sure we know about the minor
revision.
Minimum required version found by Michael Edwards!
llvm-svn: 229584
|
| |
|
|
|
|
|
| |
If an EH table is printed in between the function and the jump table we would
fail to switch back to the text section to print the jump table.
llvm-svn: 229580
|
| |
|
|
|
|
|
|
|
|
| |
Add missing specialized node overloads for `MDNode::clone()` (they were
on most of the node types already, but missing from the others).
`MDNode::clone()` returns `TempMDNode` (`std::unique_ptr<MDNode,...>`),
while `TempMDSubrange::clone()` (for example) returns the more
convenient `TempMDSubrange` (`std::unique_ptr<TempMDSubrange,...>`).
llvm-svn: 229579
|
| |
|
|
|
|
| |
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: 229563
|
| |
|
|
| |
llvm-svn: 229558
|
| |
|
|
| |
llvm-svn: 229549
|
| |
|
|
|
|
|
|
|
|
|
| |
literal pointer sections
with the Mach-O S_LITERAL_POINTERS section type.
Also fix the printing of the leading addresses for literal sections to be consistent and
not print the 0x prefix. Updated test cases to match.
llvm-svn: 229548
|
| |
|
|
|
|
|
|
|
|
| |
This time we use a helper to format the assertion so we can just use
ASSERT_TRUE instead of relying on ASSERT_EQ being able to deal with
conversions between enum types.
This reverts r229496, re-applying r229473.
llvm-svn: 229547
|
| |
|
|
| |
llvm-svn: 229542
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 229535
|
| |
|
|
|
|
|
| |
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
|