| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
We can get there with .code64.
Fixes pr22349.
llvm-svn: 232651
|
| |
|
|
| |
llvm-svn: 232650
|
| |
|
|
|
|
|
|
| |
The checks here were so vague that we could nuke intrinsics
from existence and still pass the test because we'd match
the function name.
llvm-svn: 232647
|
| |
|
|
| |
llvm-svn: 232645
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The 'vmovntdq' was only passing due to a fluke in
SandyBridge codegen that splits 32-byte stores in half,
but that meant that the test was not correctly checking
for the 32-byte store that we thought we were generating.
The lax checking in this file will be addressed in
another commit. There are bigger problems here.
llvm-svn: 232644
|
| |
|
|
| |
llvm-svn: 232643
|
| |
|
|
| |
llvm-svn: 232636
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Visual C++ 2013 complains "warning C4138: '*/' found outside of comment"
about the code
CallInst */*CI*/
but compiles OK. clang-formatting these lines adds an extra space and
makes Visual C++ satisfied.
llvm-svn: 232630
|
| |
|
|
|
|
|
|
| |
The two hot blocks are right next to each other and I verified that
there is no performance regression by compressing/uncompressing some
files with a minigzip built with the different options.
llvm-svn: 232629
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Memcpy, and other memory intrinsics, typically tries to use LDM/STM if
the source and target addresses are 4-byte aligned. In CodeGenPrepare
look for calls to memory intrinsics and, if the object is on the
stack, 4-byte align it if it's large enough that we expect that memcpy
would want to use LDM/STM to copy it.
Differential Revision: http://reviews.llvm.org/D7908
llvm-svn: 232627
|
| |
|
|
| |
llvm-svn: 232626
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that SmallString is a first-class citizen, most SmallString::str()
calls are not required. This patch removes a whole bunch of them, yet
there are lots more.
There are two use cases where str() is really needed:
1) To use one of StringRef member functions which is not available in
SmallString.
2) To convert to std::string, as StringRef implicitly converts while
SmallString do not. We may wish to change this, but it may introduce
ambiguity.
llvm-svn: 232622
|
| |
|
|
|
|
|
|
|
|
|
| |
Currently, there are no itineraries defined for ext and ins instructions.
This patch adds these itineraries and uses them in the instruction definitions.
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D7209
llvm-svn: 232613
|
| |
|
|
| |
llvm-svn: 232584
|
| |
|
|
|
|
|
|
| |
fix BPF backend build broken by r232429
Patch by Brenden Blanco
llvm-svn: 232581
|
| |
|
|
|
|
| |
These BEXTR cases are a check for the 64-bit load form and two negative cases where the bitrange is non-contiguous. From a private patch equivalent to r189742/PR17028.
llvm-svn: 232580
|
| |
|
|
| |
llvm-svn: 232578
|
| |
|
|
| |
llvm-svn: 232577
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change teaches isImpliedCond to infer things like "X sgt 0" => "X -
1 sgt -1". The `ConstantRange` class has the logic to do the heavy
lifting, this change simply gets ScalarEvolution to exploit that when
reasonable.
Depends on D8345
Reviewers: atrick
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8346
llvm-svn: 232576
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change splits `makeICmpRegion` into `makeAllowedICmpRegion` and
`makeSatisfyingICmpRegion` with slightly different contracts. The first
one is useful for determining what values some expression //may// take,
given that a certain `icmp` evaluates to true. The second one is useful
for determining what values are guaranteed to //satisfy// a given
`icmp`.
Reviewers: nlewycky
Reviewed By: nlewycky
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8345
llvm-svn: 232575
|
| |
|
|
|
|
|
|
|
|
| |
Targets which provide a rotate make it possible to replace a sequence of
(XOR (SHL 1, x), -1) with (ROTL ~1, x). This saves an instruction on
architectures like X86 and POWER(64).
Differential Revision: http://reviews.llvm.org/D8350
llvm-svn: 232572
|
| |
|
|
|
|
|
|
|
|
| |
COFF COMDATs (for selection kinds other than 'select any') require at
least one non-section symbol in the symbol table.
Satisfy this by morally enhancing the linkage from private to internal.
Differential Revision: http://reviews.llvm.org/D8394
llvm-svn: 232570
|
| |
|
|
|
|
|
| |
- SelectSelect, and
- SelectTruncate
llvm-svn: 232569
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cleanup some bitrot in SourceLevelDebugging.rst.
- Pull the still-relevant details about individual descriptors into
LangRef.rst. Cut a lot of it to avoid over-describing the fields,
as the C++ classes and assembly format are mostly self-describing
now. If there's anything specific that I shouldn't have cut, let me
know and I'll add it back.
- Rewrite the remaining sections to refer to the new debug info
hierarchy in LangRef.rst.
llvm-svn: 232566
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Building FP16 constant vectors caused the FP16 data to be bitcast to i64. This patch creates a BITCAST node with the correct value, and adds a test to verify correct handling.
Reviewers: mcrosier
Reviewed By: mcrosier
Subscribers: mcrosier, jmolloy, ab, srhines, llvm-commits, rengolin, aemerson
Differential Revision: http://reviews.llvm.org/D8369
llvm-svn: 232562
|
| |
|
|
|
|
| |
I will revert this when 4.7.3 is ready.
llvm-svn: 232561
|
| |
|
|
|
|
| |
-disassemble to not symbolic operands when disassembling.
llvm-svn: 232558
|
| |
|
|
| |
llvm-svn: 232557
|
| |
|
|
|
|
| |
Simplify: (or (select c x 0) z) -> (select c (or x z) z)
(or (select c 0 y) z) -> (select c z (or y z))
llvm-svn: 232553
|
| |
|
|
|
|
|
|
| |
As StringInit::get() accepts StringRef there is no need
to construct a std::string out of the StringRef input and
then construct a new StringRef from the std::string.
llvm-svn: 232551
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Break MDExpression off of DebugNode (inherit directly from `MDNode`) and
drop the fake `DW_TAG_expression` tag in the process.
AFAICT, there's no real functionality change here. The tag was
originally used by `DIDescriptor::isExpression()` to discriminate
between `MDNode`s, but in the new hierarchy we don't need that.
Fixes PR22780.
llvm-svn: 232550
|
| |
|
|
|
|
|
|
| |
We were creating an expression of the form (S+C)-S which is just C.
Patch by Frédéric Riss. I just added the testcase.
llvm-svn: 232549
|
| |
|
|
|
|
| |
-disassemble or -section to not print the leading addresses on each line.
llvm-svn: 232547
|
| |
|
|
|
|
| |
Patch by Stanislav Manilov!
llvm-svn: 232546
|
| |
|
|
|
|
| |
This reverts commit r232539. This was committed accidently.
llvm-svn: 232543
|
| |
|
|
|
|
| |
NFC.
llvm-svn: 232542
|
| |
|
|
|
|
| |
This reverts commit r232540. This was committed accidently.
llvm-svn: 232541
|
| |
|
|
| |
llvm-svn: 232540
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
COFF COMDATs (for selection kinds other than 'select any') require at
least one non-section symbol in the symbol table.
Satisfy this by morally enhancing the linkage from private to internal.
Reviewers: rafael
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8374
llvm-svn: 232539
|
| |
|
|
| |
llvm-svn: 232536
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch code wanting to create temporary labels for a given entity
(function, cu, exception range, etc) had to keep its own counter to have stable
symbol names.
createTempSymbol would still add a suffix to make sure a new symbol was always
returned, but it kept a single counter. Because of that, if we were to use
just createTempSymbol("cu_begin"), the label could change from cu_begin42 to
cu_begin43 because some other code started using temporary labels.
Simplify this by just keeping one counter per prefix and removing the various
specialized counters.
llvm-svn: 232535
|
| |
|
|
|
|
|
| |
This is an artifact of an implementation detail of DebugIR that has been
long refactored away. NFC.
llvm-svn: 232532
|
| |
|
|
|
|
|
|
| |
Also, add several entries to vectorizable functions table, and
corresponding tests. The table isn't complete, it'll be populated later.
Review: http://reviews.llvm.org/D8131
llvm-svn: 232531
|
| |
|
|
|
|
|
| |
The tests would be committed in a commit for http://reviews.llvm.org/D8131
Review: http://reviews.llvm.org/D8095
llvm-svn: 232530
|
| |
|
|
|
| |
Review: http://reviews.llvm.org/D8096
llvm-svn: 232528
|
| |
|
|
|
|
|
|
| |
lowering.
We have observed that noreg was being generated due to a bug in FastIsel and was not being detected during emission. It happens that in the Asm emission there is an assertion that detects this in getRegisterName() from the tbl-generated file PPCGenAsmWriter.inc. However, when emitting an Obj file, invalid registers can be emitted given that no check are made in getBinaryCodeFromInstr() from PPCGenMCCodeEmitter.inc. In order to cover all cases this adds an assertion for reg operands in LowerPPCMachineInstrToMCInst.
llvm-svn: 232525
|
| |
|
|
|
| |
Review: http://reviews.llvm.org/D8094
llvm-svn: 232524
|
| |
|
|
|
| |
Review: http://reviews.llvm.org/D8093
llvm-svn: 232523
|
| |
|
|
|
| |
Review: http://reviews.llvm.org/D8092
llvm-svn: 232522
|
| |
|
|
| |
llvm-svn: 232521
|