| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 233565
|
| |
|
|
|
|
|
| |
Simplify the logic in `DISubprogram::Verify()` by using the new debug
info hierarchy directly instead of the `DebugLoc` wrapper.
llvm-svn: 233563
|
| |
|
|
|
|
|
|
|
|
| |
Stop worrying about what the `function:` field is in `MDSubprogram`,
since it could be a bitcast [1]. Just check its type and leave it at
that.
[1]: http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_build/3540/
llvm-svn: 233562
|
| |
|
|
|
|
|
|
|
|
| |
Add operand checks for `MDLexicalBlock` and `MDLexicalBlockFile`. Like
`MDLocalVariable` and `MDLocation`, these nodes always require a scope.
There was no test bitrot to fix here (just updated the serialization
tests in test/Assembler/mdlexicalblock.ll).
llvm-svn: 233561
|
| |
|
|
|
|
|
|
| |
Momentarily (but never in tree), the `scope:` field was called
`parent:`. Apparently a few testcases were left behind with "parent" in
the name, so rename them.
llvm-svn: 233560
|
| |
|
|
|
|
|
|
|
|
|
| |
Check operands of `MDSubprogram`s in the verifier, and update the
accessors and factory functions to use more specific types.
There were a lot of broken testcases, which I fixed in r233466. If you
have out-of-tree tests for debug info, you probably need similar changes
to the ones I made there.
llvm-svn: 233559
|
| |
|
|
| |
llvm-svn: 233558
|
| |
|
|
|
|
| |
Following r233392, http://llvm.org/viewvc/llvm-project?rev=233392&view=rev.
llvm-svn: 233555
|
| |
|
|
| |
llvm-svn: 233554
|
| |
|
|
| |
llvm-svn: 233553
|
| |
|
|
| |
llvm-svn: 233551
|
| |
|
|
|
|
| |
The group names are always symbol names, so we can use a StringRef.
llvm-svn: 233545
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Compiling the following function with -O0 would crash, since LLVM would
hit an assertion in getTestUnderMaskCond:
int test(unsigned long x)
{
return x >= 0 && x <= 15;
}
Fixed by detecting the case in the caller of getTestUnderMaskCond.
llvm-svn: 233541
|
| |
|
|
|
|
| |
As was done for X86 in r206094.
llvm-svn: 233540
|
| |
|
|
|
|
|
|
|
|
|
| |
These sections are never looked up and we know when have to create them. Use
that to save adding them to the regular map and avoid a symbol->string->symbol
conversion for the group symbol.
This also makes the implementation independent of the details of how unique
sections are implemented.
llvm-svn: 233539
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The 'R' constraint is actually supposed to be much more complicated than
this and is defined in terms of whether it will cause macro expansion in
the assembler. 'R' is getting less useful due to architecture changes and
ought to be replaced by other constraints. We therefore implement 9-bit
offsets which will work for all subtargets and all instructions.
Reviewers: vkalintiris
Reviewed By: vkalintiris
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8440
llvm-svn: 233537
|
| |
|
|
| |
llvm-svn: 233536
|
| |
|
|
| |
llvm-svn: 233535
|
| |
|
|
|
|
|
| |
This leads to terribly slow compile times under MSAN. More discussion
on the commit thread of r233447.
llvm-svn: 233529
|
| |
|
|
|
|
| |
see comments http://reviews.llvm.org/D6835
llvm-svn: 233528
|
| |
|
|
|
|
| |
by Asaf Badouh (asaf.badouh@intel.com)
llvm-svn: 233525
|
| |
|
|
|
|
| |
support saving ymm state.
llvm-svn: 233518
|
| |
|
|
|
|
| |
which doesn't have AES. Having AES and not PCLMUL makes 'corei7' halfway between Nehalem and Westmere.
llvm-svn: 233517
|
| |
|
|
|
|
| |
etc. Split Nehalem and Westmere CPUs.
llvm-svn: 233516
|
| |
|
|
|
|
| |
Dothan based SOC.
llvm-svn: 233515
|
| |
|
|
|
|
| |
processor.
llvm-svn: 233514
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: In dumpMemorySections a cast was too short, and in resolveRelocations a format string was too short.
Test Plan:
Enable debug build and run a program which invokes MCJIT::finalizeObject(). Saw valid input as below (highlighted addresses were previously truncated):
```
Parse relocations:
Resolving relocations Section #0 **0x7f4c1337b000**
----- Contents of section socket1 before relocations -----
**0x00007f4c1337b000**: 18 01 00 00 01 01 01 0a 00 00 00 00 04 03 02 01
0x00007f4c1337b010: 7b 1a f8 ff 00 00 00 00 18 11 00 00 05 00 00 00
```
Reviewers: lhames
Reviewed By: lhames
Subscribers: llvm-commits, ast
Differential Revision: http://reviews.llvm.org/D8681
llvm-svn: 233512
|
| |
|
|
| |
llvm-svn: 233510
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MCJIT.
This patch decouples the two responsibilities of the RTDyldMemoryManager class,
memory management and symbol resolution, into two new classes:
RuntimeDyld::MemoryManager and RuntimeDyld::SymbolResolver.
The symbol resolution interface is modified slightly, from:
uint64_t getSymbolAddress(const std::string &Name);
to:
RuntimeDyld::SymbolInfo findSymbol(const std::string &Name);
The latter passes symbol flags along with symbol addresses, allowing RuntimeDyld
and others to reason about non-strong/non-exported symbols.
The memory management interface removes the following method:
void notifyObjectLoaded(ExecutionEngine *EE,
const object::ObjectFile &) {}
as it is not related to memory management. (Note: Backwards compatibility *is*
maintained for this method in MCJIT and OrcMCJITReplacement, see below).
The RTDyldMemoryManager class remains in-tree for backwards compatibility.
It inherits directly from RuntimeDyld::SymbolResolver, and indirectly from
RuntimeDyld::MemoryManager via the new MCJITMemoryManager class, which
just subclasses RuntimeDyld::MemoryManager and reintroduces the
notifyObjectLoaded method for backwards compatibility).
The EngineBuilder class retains the existing method:
EngineBuilder&
setMCJITMemoryManager(std::unique_ptr<RTDyldMemoryManager> mcjmm);
and includes two new methods:
EngineBuilder&
setMemoryManager(std::unique_ptr<MCJITMemoryManager> MM);
EngineBuilder&
setSymbolResolver(std::unique_ptr<RuntimeDyld::SymbolResolver> SR);
Clients should use EITHER:
A single call to setMCJITMemoryManager with an RTDyldMemoryManager.
OR (exclusive)
One call each to each of setMemoryManager and setSymbolResolver.
This patch should be fully compatible with existing uses of RTDyldMemoryManager.
If it is not it should be considered a bug, and the patch either fixed or
reverted.
If clients find the new API to be an improvement the goal will be to deprecate
and eventually remove the RTDyldMemoryManager class in favor of the new classes.
llvm-svn: 233509
|
| |
|
|
| |
llvm-svn: 233506
|
| |
|
|
|
|
|
|
| |
Add convenience function for building a typed IR Constant from trampoline
addresses.
llvm-svn: 233504
|
| |
|
|
| |
llvm-svn: 233502
|
| |
|
|
|
|
|
| |
They're harmless and it's easy to generate them from clang, leading to
a crash in LLVM. Found by afl-fuzz.
llvm-svn: 233500
|
| |
|
|
| |
llvm-svn: 233498
|
| |
|
|
| |
llvm-svn: 233495
|
| |
|
|
|
|
| |
By Asaf Badouh (asaf.badouh@intel.com)
llvm-svn: 233489
|
| |
|
|
| |
llvm-svn: 233488
|
| |
|
|
|
|
| |
Plan to use this as part of CPU 'native' support so we can stop picking a different CPU name if CPU doesn't support AVX or AVX2.
llvm-svn: 233487
|
| |
|
|
|
|
|
|
|
| |
All the ports have been fixed to read the feature bits from the subtarget passed
to the print methods. Also, delete the call to setAvailableFeatures in the
constructor of NVPTX's instprinter as the instprinter wasn't using the feature
bits anywhere.
llvm-svn: 233486
|
| |
|
|
|
|
| |
instead of from MCInstPrinter::AvailableFeatures.
llvm-svn: 233485
|
| |
|
|
|
|
| |
This fixes a bug I introduced in r233411.
llvm-svn: 233484
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instructions
The asm syntax for the 32-bit rotate-and-mask instructions can take a 32-bit
bitmask instead of an (mb, me) pair. This syntax is not specified in the Power
ISA manual, but is accepted by GNU as, and is documented in IBM's Assembler
Language Reference. The GNU Multiple Precision Arithmetic Library (gmp)
contains assembly that uses this syntax.
To implement this, I moved the isRunOfOnes utility function from
PPCISelDAGToDAG.cpp to PPCMCTargetDesc.h.
llvm-svn: 233483
|
| |
|
|
|
|
| |
DAGCombiner::ReassociateOps was correctly testing for an constant integer scalar but failed to correctly test for constant integer vectors (it was testing for any constant vector).
llvm-svn: 233482
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
PPC_FP128 is really the sum of two consecutive doubles, where the first double
is always stored first in memory, regardless of the target endianness. The
memory layout of i128, however, depends on the target endianness, and so we
can't fold this without target endianness information. As a result, we must not
do this folding in lib/IR/ConstantFold.cpp (it could be done instead in
Analysis/ConstantFolding.cpp, but that's not done now).
Fixes PR23026.
llvm-svn: 233481
|
| |
|
|
|
|
| |
them.
llvm-svn: 233475
|
| |
|
|
| |
llvm-svn: 233474
|
| |
|
|
| |
llvm-svn: 233473
|
| |
|
|
|
|
|
|
|
|
|
| |
instead of the one passed to the constructor.
Unfortunately, I don't have a test case for this change. In order to test my
change, I will have to run the code after line 90 in printSparcAliasInstr. I
couldn't make that happen because printAliasInstr would always handle the
printing of fcmp instructions that the code after line 90 is supposed to handle.
llvm-svn: 233471
|
| |
|
|
| |
llvm-svn: 233470
|
| |
|
|
|
|
|
|
|
| |
Loosen one check from r233446: as long as `DIBuilder` requires a
non-null type for every subprogram, we should allow a null type array.
Also add tests for the rest of `MDSubroutineType`, which were somehow
missing.
llvm-svn: 233468
|