| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter
llvm-svn: 196288
|
| |
|
|
|
|
| |
It broke CodeGen/R600 tests with +Asserts.
llvm-svn: 196272
|
| |
|
|
| |
llvm-svn: 196270
|
| |
|
|
|
|
| |
Testcase added.
llvm-svn: 196269
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The backend converts 64-bit ORs into subreg moves if the upper 32 bits
of one operand and the low 32 bits of the other are known to be zero.
It then tries to peel away redundant ANDs from the upper 32 bits.
Since AND masks are canonicalized to exclude known-zero bits,
the test ORs the mask and the known-zero bits together before
checking for redundancy. The problem was that it was using the
wrong node when checking for known-zero bits, so could drop ANDs
that were still needed.
llvm-svn: 196267
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The fix to PR17631 fixes part of the cases where 'vzeroupper' should
not be issued before 'call' insn. There're other cases where helper
calls will be inserted not limited to epilog. These helper calls do
not follow the standard calling convention and won't clobber any YMM
registers. (So far, all call conventions will clobber any or part of
YMM registers.)
This patch enhances the previous fix to cover more cases 'vzerosupper' should
not be inserted by checking if that function call won't clobber any YMM
registers and skipping it if so.
llvm-svn: 196261
|
| |
|
|
|
|
| |
E.g. int64x1_t vcvt_s64_f64(float64x1_t a) -> FCVTZS Dd, Dn
llvm-svn: 196210
|
| |
|
|
|
|
|
|
| |
from VFP instructions.
E.g. float64x1_t vadd_f64(float64x1_t a, float64x1_t b) -> FADD Dd, Dn, Dm.
llvm-svn: 196208
|
| |
|
|
| |
llvm-svn: 196203
|
| |
|
|
|
|
| |
E.g. "float32_t vaddv_f32(float32x2_t a)" to be matched into "faddp s0, v1.2s".
llvm-svn: 196198
|
| |
|
|
|
|
| |
Changed while to for loop. Removed unnecessary if statement.
llvm-svn: 196194
|
| |
|
|
|
|
| |
and friends.
llvm-svn: 196192
|
| |
|
|
|
|
| |
vmull_high_n_s16 and friends.
llvm-svn: 196190
|
| |
|
|
|
|
| |
These targets have special asm printers that don't use these.
llvm-svn: 196187
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Instead of asking the user to specify a single file to output coverage
info and defaulting to STDOUT, llvm-cov now creates files for each
source file with a naming system of: <source filename> + ".llcov".
This is what gcov does and although it can clutter the working directory
with numerous coverage files, it will be easier to hook the llvm-cov
output to tools which operate on this assumption (such as lcov).
llvm-svn: 196184
|
| |
|
|
|
|
|
|
|
|
|
|
| |
propagation graph via graphviz.
This is useful for debugging issues in the BlockFrequency implementation
since one can easily visualize where probability mass and other errors
occur in the propagation.
This is the MI version of r194654.
llvm-svn: 196183
|
| |
|
|
|
|
| |
into a single function. No functional change.
llvm-svn: 196181
|
| |
|
|
| |
llvm-svn: 196180
|
| |
|
|
| |
llvm-svn: 196179
|
| |
|
|
|
|
|
| |
and emitted per function and CU. Begins coalescing ranges as a first
class entity through debug info. No functional change.
llvm-svn: 196178
|
| |
|
|
|
|
|
|
|
| |
Each line stores all the blocks that execute on that line, instead of
only storing the line counts previously accumulated. This provides more
information for each line, and will be useful for options in enabling
block and branch information.
llvm-svn: 196177
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Added GCOVEdge which are simple structs owned by the GCOVFunction that
stores the source and destination GCOVBlocks, as well as the counts.
Changed GCOVBlocks so that it stores a vector of source GCOVEdges and a
vector of destination GCOVEdges, rather than just the block number.
Storing the block number was only useful for knowing the number of edges
and for debug info. Using a struct is useful for traversing the edges,
especially back edges which may be needed later.
llvm-svn: 196175
|
| |
|
|
|
|
| |
There are now two functions: readGCNO() and readGCDA().
llvm-svn: 196173
|
| |
|
|
|
|
|
|
| |
getDebugMetadataVersionFromModule.
Suggested by Eric.
llvm-svn: 196172
|
| |
|
|
|
|
|
|
|
|
| |
PPCScoreboardHazardRecognizer was a subclass of ScoreboardHazardRecognizer
which did only one thing: filtered out nodes in EmitInstruction for which
DAG->getInstrDesc(SU) returned NULL. This used to be the case for PPC pseudo
instructions. As far as I can tell, this is no longer true, and so we can use
ScoreboardHazardRecognizer directly.
llvm-svn: 196171
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 196170
|
| |
|
|
| |
llvm-svn: 196169
|
| |
|
|
| |
llvm-svn: 196168
|
| |
|
|
|
|
| |
change intended.
llvm-svn: 196164
|
| |
|
|
|
|
| |
functional change intended.
llvm-svn: 196163
|
| |
|
|
| |
llvm-svn: 196161
|
| |
|
|
|
|
| |
Review feedback from Eric Christopher on r196140
llvm-svn: 196160
|
| |
|
|
|
|
|
|
| |
that they might be type units instead of compile units.
CR feedback from Eric Christopher on r196139.
llvm-svn: 196159
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a helper function getDebugInfoVersionFromModule to return the debug info
version number for a module.
"Verifier/module-flags-1.ll" checks for verification errors.
It will seg fault when calling getDebugInfoVersionFromModule because of the
incorrect format for module flags in the testing case. We make
getModuleFlagsMetadata more robust by checking for error conditions.
PR17982
llvm-svn: 196158
|
| |
|
|
|
|
| |
Patch by Ana Pazos!
llvm-svn: 196151
|
| |
|
|
|
|
|
|
| |
Remove some associated dead code.
This cleanup is associated with PR17872.
llvm-svn: 196147
|
| |
|
|
| |
llvm-svn: 196140
|
| |
|
|
|
|
|
|
|
|
| |
CompileUnit/TypeUnit derived classes.
Header/cpp file rename to follow immediately - just splitting out the
commits for ease of review/reading to demonstrate that the renaming
changes are entirely mechanical.
llvm-svn: 196139
|
| |
|
|
| |
llvm-svn: 196130
|
| |
|
|
|
|
| |
sequence where the shift is logical unless the comparison is unsigned
llvm-svn: 196129
|
| |
|
|
| |
llvm-svn: 196121
|
| |
|
|
|
|
| |
This allows it to be used in TargetLoweringObjectFileImpl.cpp.
llvm-svn: 196117
|
| |
|
|
|
|
|
|
| |
This makes the code a little more idiomatic.
No change in behaviour.
llvm-svn: 196113
|
| |
|
|
|
|
|
|
|
| |
MO_JumpTableIndex and MO_ExternalSymbol don't show up on inline asm.
Keeping parts of the old asm printer just to print inline asm to a string that
we then parse back looks like a hack.
llvm-svn: 196111
|
| |
|
|
| |
llvm-svn: 196104
|
| |
|
|
| |
llvm-svn: 196102
|
| |
|
|
| |
llvm-svn: 196094
|
| |
|
|
|
|
|
|
|
|
|
|
| |
eliminateFrameIndex() has been reworked to handle both small & large frames
with either a FP or SP.
An additional Slot is required for Scavenging spills when not using FP for large frames.
Reworked the handling of Register Scavenging.
Whether we are using an FP or not, whether it is a large frame or not,
and whether we are using a large code model or not are now independent.
llvm-svn: 196091
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These are used by MachO only at the moment, and (much like the existing
MOVW/MOVT set) work around the fact that the labels used in the actual
instructions often contain PC-dependent components, which means that repeatedly
materialising the same global can't be CSEed.
With small modifications, it could be adapted to how ELF finds the address of
_GLOBAL_OFFSET_TABLE_, which would give similar benefits in PIC mode there.
llvm-svn: 196090
|
| |
|
|
| |
llvm-svn: 196089
|