| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
features.
If two functions require different features (e.g., `-mno-sse' vs. `-msse') then
we want to honor that, especially during LTO. We can do that by resetting the
subtarget's features depending upon the 'target-feature' attribute.
llvm-svn: 175314
|
| |
|
|
| |
llvm-svn: 175312
|
| |
|
|
|
|
| |
No functionality change intended.
llvm-svn: 175310
|
| |
|
|
|
|
|
|
|
|
|
| |
functions. Set AddedComplexity to determine the order in which patterns are
matched.
This simplifies selection of floating point loads/stores.
No functionality change intended.
llvm-svn: 175300
|
| |
|
|
|
|
|
| |
of the old jit and which we don't intend to support in mips16 or micromips.
This dependency is for the testing of whether an instruction is a pseudo.
llvm-svn: 175297
|
| |
|
|
|
|
|
| |
While there postpone register name printing after uniquing.
No intended functionality change.
llvm-svn: 175292
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- add sincos to runtime library if target triple environment is GNU
- added canCombineSinCosLibcall() which checks that sincos is in the RTL and
if the environment is GNU then unsafe fpmath is enabled (required to
preserve errno)
- extended sincos-opt lit test
Reviewed by: Hal Finkel
llvm-svn: 175283
|
| |
|
|
|
|
|
|
| |
support constant extension.
This patch doesn't introduce any functionality changes.
llvm-svn: 175280
|
| |
|
|
|
|
|
|
|
|
| |
Several functions and variable names used the term 'tree' to refer
to what is actually a DAG. Correcting this mistake will, hopefully,
prevent confusion in the future.
No functionality change intended.
llvm-svn: 175278
|
| |
|
|
|
|
| |
types..."
llvm-svn: 175273
|
| |
|
|
|
|
|
|
|
| |
It enables to work with a smaller constant, which is target friendly for those which can compare to immediates.
It also avoids inserting a shift in favor of a trunc, which can be free on some targets.
This used to work until LLVM-3.1, but regressed with the 3.2 release.
llvm-svn: 175270
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This is essentially a stripped-down version of the ConstandIslands pass (which
always had these two functions), providing just the features necessary for
correctness.
In particular there needs to be a way to resolve the situation where a
conditional branch's destination block ends up out of range.
This issue crops up when self-hosting for AArch64.
llvm-svn: 175269
|
| |
|
|
|
|
|
| |
than we need to and some ELF linkers complain about directly accessing symbols
with default visibility.
llvm-svn: 175268
|
| |
|
|
|
|
|
|
| |
blocks. We still don't have consensus if we should try to change clang or
the standard, but llvm should work with compilers that implement the current
standard and mangle those functions.
llvm-svn: 175267
|
| |
|
|
|
|
| |
https://code.google.com/p/address-sanitizer/issues/detail?id=151
llvm-svn: 175266
|
| |
|
|
|
|
| |
linkage.
llvm-svn: 175264
|
| |
|
|
|
|
|
|
| |
This implements the review suggestion to simplify the AArch64 backend. If we
later discover that we *really* need the extra complexity of the
ConstantIslands pass for performance reasons it can be resurrected.
llvm-svn: 175258
|
| |
|
|
|
|
|
|
| |
In the near future litpools will be in a different section, which means that
any access to them is at least two instructions. This makes the case for a
movz/movk pair (if total offset <= 32-bits) even more compelling.
llvm-svn: 175257
|
| |
|
|
| |
llvm-svn: 175252
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For some basic blocks, it is possible to generate many candidate pairs for
relatively few pairable instructions. When many (tens of thousands) of these pairs
are generated for a single instruction group, the time taken to generate and
rank the different vectorization plans can become quite large. As a result, we now
cap the number of candidate pairs within each instruction group. This is done by
closing out the group once the threshold is reached (set now at 3000 pairs).
Although this will limit the overall compile-time impact, this may not be the best
way to achieve this result. It might be better, for example, to prune excessive
candidate pairs after the fact the prevent the generation of short, but highly-connected
groups. We can experiment with this in the future.
This change reduces the overall compile-time slowdown of the csa.ll test case in
PR15222 to ~5x. If 5x is still considered too large, a lower limit can be
used as the default.
This represents a functionality change, but only for very large inputs
(thus, there is no regression test).
llvm-svn: 175251
|
| |
|
|
|
|
| |
This reverts commit 82c101153fe7b35bce48781fab038e1b8f31a7bd.
llvm-svn: 175250
|
| |
|
|
|
|
|
| |
not matter but makes it more gcc compatible which avoids possible subtle
problems. Also, turned back on a disabled check in helloworld.ll.
llvm-svn: 175237
|
| |
|
|
| |
llvm-svn: 175235
|
| |
|
|
|
|
|
| |
Unfortunately, I wasn't able to create a test case that demonstrates the
problem I was trying to fix with this patch.
llvm-svn: 175226
|
| |
|
|
|
|
|
| |
defined and used registers. Also add a few helper functions to simplify the
code.
llvm-svn: 175224
|
| |
|
|
| |
llvm-svn: 175222
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
assembler should also accept a two arg form, as the docuemntation specifies that
the first (destination) register is optional.
This patch uses TwoOperandAliasConstraint to add the two argument form.
It also fixes an 80-column formatting problem in:
test/MC/ARM/neon-bitwise-encoding
<rdar://problem/12909419> Clang rejects ARM NEON assembly instructions
llvm-svn: 175221
|
| |
|
|
| |
llvm-svn: 175220
|
| |
|
|
|
|
|
|
| |
1. Define and use function terminateSearch.
2. Use MachineBasicBlock::iterator instead of MachineBasicBlock::instr_iterator.
3. Delete the line which checks whether an instruction is a pseudo.
llvm-svn: 175219
|
| |
|
|
|
|
|
|
|
|
| |
All instances of std::multimap have now been replaced by
DenseMap<K, std::vector<V> >, and this yields a speedup of 5% on the
csa.ll test case from PR15222.
No functionality change intended.
llvm-svn: 175216
|
| |
|
|
|
|
|
|
|
|
| |
This is another commit on the road to removing std::multimap from
BBVectorize. This gives an ~1% speedup on the csa.ll test case
in PR15222.
No functionality change intended.
llvm-svn: 175215
|
| |
|
|
| |
llvm-svn: 175212
|
| |
|
|
| |
llvm-svn: 175209
|
| |
|
|
|
|
|
|
| |
This patch doesn't introduce any functionality changes.
It adds some new fields to the Hexagon instruction classes and
changes their layout to support instruction encoding.
llvm-svn: 175205
|
| |
|
|
| |
llvm-svn: 175204
|
| |
|
|
|
|
|
|
|
| |
LLVMCreateMemoryBufferWithMemoryRange - exposes MemoryBuffer::getMemBuffer
LLVMCreateMemoryBufferWithMemoryRangeCopy - exposes MemoryBuffer::getMemBufferCopy
Patch by Moritz Maxeiner!
llvm-svn: 175199
|
| |
|
|
|
|
| |
-feature flag, instructions definitions, test cases
llvm-svn: 175196
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The important fix is that the constant interpolation value is stored in the
parameter slot P0, which is encoded as 2.
In addition, drop the SI_INTERP_CONST pseudo instruction, pass the parameter
slot as an operand to V_INTERP_MOV_F32 instead of hardcoding it there, and
add a special operand class for the parameter slots for type checking and
pretty printing.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 175193
|
| |
|
|
| |
llvm-svn: 175190
|
| |
|
|
| |
llvm-svn: 175189
|
| |
|
|
|
|
| |
This patch doesn't introduce any functionality changes.
llvm-svn: 175187
|
| |
|
|
|
|
|
|
| |
inline asm with 64-bit data on ARM
Update test case to use -mtriple=arm-linux-gnueabi
llvm-svn: 175186
|
| |
|
|
|
|
|
|
|
| |
It fixes around 100 tfb piglit tests and 16 glean tests.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175183
|
| |
|
|
|
|
|
|
| |
This allows MachineInstScheduler to reorder them, and thus make scheduling more
efficient.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175182
|
| |
|
|
|
| |
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175181
|
| |
|
|
|
|
|
|
|
| |
This fixes a couple of regressions on (probably not just) cayman
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
llvm-svn: 175180
|
| |
|
|
| |
llvm-svn: 175176
|
| |
|
|
| |
llvm-svn: 175173
|
| |
|
|
|
|
|
|
|
|
| |
If vector types have legal register classes, then LLVM bypasses LegalizeTypes
on them, which causes faults currently since the code to handle them isn't in
place.
This fixes test failures when AArch64 is the default target.
llvm-svn: 175172
|
| |
|
|
|
|
| |
Only comments affected. No code change at all.
llvm-svn: 175169
|