| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 185071
|
| |
|
|
| |
llvm-svn: 185069
|
| |
|
|
| |
llvm-svn: 185068
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add pseudo conditional store instructions, so that we use:
branch foo:
store
foo:
instead of:
load
branch foo:
move
foo:
store
z196 has real 32-bit and 64-bit conditional stores, but we don't use
any z196 instructions yet.
llvm-svn: 185065
|
| |
|
|
|
|
|
|
|
|
|
| |
There are a few valid situation where we care about the structure inside a
directory, but not about the directory itself. A simple example is for unit
testing directory traversal.
PathV1 had a function like this, add one to V2 and port existing users of the
created temp file and delete it hack to using it.
llvm-svn: 185059
|
| |
|
|
|
|
|
|
|
|
| |
When we store values for reversed induction stores we must not store the
reversed value in the vectorized value map. Another instruction might use this
value.
This fixes 3 test cases of PR16455.
llvm-svn: 185051
|
| |
|
|
|
|
|
|
| |
The Builtin attribute is an attribute that can be placed on function call site that signal that even though a function is declared as being a builtin,
rdar://problem/13727199
llvm-svn: 185049
|
| |
|
|
| |
llvm-svn: 185047
|
| |
|
|
|
|
| |
post-order because we grow chains upwards.
llvm-svn: 185041
|
| |
|
|
|
|
| |
outerloops from iterating over the instructions.
llvm-svn: 185040
|
| |
|
|
|
|
| |
!APFloat.isDenormal => APFloat.isNormal.
llvm-svn: 185037
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Currently inside APFloat fcNormal still implies the old definition of Normal
(i.e. isFiniteNonZero) instead of the proper IEEE-754R definition that the
external method isNormal() uses.
This patch prepares for the internal switch inside APFloat by converting all
references that check if a category is fcNormal directly with an indirect call
via isFiniteNonZero().
llvm-svn: 185036
|
| |
|
|
|
|
| |
This reverts commit r185020
llvm-svn: 185032
|
| |
|
|
|
|
|
|
| |
Option groups don't have prefixes. Option dumping is basically dead
code unless there is something wrong with the option table, so this
isn't an important crasher.
llvm-svn: 185031
|
| |
|
|
| |
llvm-svn: 185030
|
| |
|
|
|
|
|
| |
function to lookup the proper tablegen'ed register enumeration. Previously,
it was using the encoded value directly.
llvm-svn: 185026
|
| |
|
|
|
|
|
|
| |
not used for incompatible calling conventions.
(Currently, ARM 'this'-returns are handled in the standard calling convention case by treating R0 as preserved and doing some extra magic in LowerCallResult; this may not apply to calling conventions added in the future so this patch provides and documents an interface for indicating such)
llvm-svn: 185024
|
| |
|
|
|
|
|
|
| |
No functionality change.
It should suffice to check the type of a debug info metadata, instead of
calling Verify.
llvm-svn: 185020
|
| |
|
|
| |
llvm-svn: 185016
|
| |
|
|
| |
llvm-svn: 185015
|
| |
|
|
| |
llvm-svn: 185012
|
| |
|
|
|
|
|
|
| |
adds and
subs.
llvm-svn: 185011
|
| |
|
|
|
|
| |
Patch by 罗勇刚(Yonggang Luo).
llvm-svn: 184971
|
| |
|
|
| |
llvm-svn: 184969
|
| |
|
|
|
|
| |
This allows for targeting the ARMv8 AArch32 variant.
llvm-svn: 184967
|
| |
|
|
|
|
| |
consider them as a candidate for replacement of instructions to be visited.
llvm-svn: 184966
|
| |
|
|
|
|
|
|
|
|
| |
Unfortunately this addresses two issues (by the time I'd disentangled the logic
it wasn't worth putting it back to half-broken):
+ Coprocessor instructions should all be predicable in Thumb mode.
+ BKPT should never be predicable.
llvm-svn: 184965
|
| |
|
|
|
|
|
| |
The barrier instructions are only "always-execute" in ARM mode, they can quite
happily sit inside an IT block in Thumb.
llvm-svn: 184964
|
| |
|
|
|
|
| |
Make v4 the default ARM architecture attribute, to match CodeGen.
llvm-svn: 184962
|
| |
|
|
| |
llvm-svn: 184960
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The assembler currently strictly verifies that immediates for
s16imm operands are in range (-32768 ... 32767). This matches
the behaviour of the GNU assembler, with one exception: gas
allows, as a special case, operands in an extended range
(-65536 .. 65535) for the addis instruction only (and its
extended mnemonic lis).
The main reason for this seems to be to allow using unsigned
16-bit operands for lis, e.g. like lis %r1, 0xfedc.
Since this has been supported by gas for a long time, and
assembler source code seen "in the wild" actually exploits
this feature, this patch adds equivalent support to LLVM
for compatibility reasons.
llvm-svn: 184946
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, all instructions taking s16imm operands support symbolic
operands. However, for u16imm operands, we only support actual
immediate integers. This causes the assembler to reject code like
ori %r5, %r5, symbol@l
This patch changes the u16imm operand definition to likewise
accept symbolic operands. In fact, s16imm and u16imm can
share the same encoding routine, now renamed to getImm16Encoding.
llvm-svn: 184944
|
| |
|
|
| |
llvm-svn: 184943
|
| |
|
|
|
|
| |
and loadRegFromStackSlot.
llvm-svn: 184935
|
| |
|
|
| |
llvm-svn: 184933
|
| |
|
|
|
|
| |
shift/xor/sub when it is possible. Fixed a bug in SDIV, where the const operand is not a splat constant vector.
llvm-svn: 184931
|
| |
|
|
|
|
| |
more than the redzone size
llvm-svn: 184928
|
| |
|
|
| |
llvm-svn: 184927
|
| |
|
|
|
|
| |
bots :-(
llvm-svn: 184920
|
| |
|
|
| |
llvm-svn: 184917
|
| |
|
|
| |
llvm-svn: 184916
|
| |
|
|
|
|
| |
I will remove the V1 version as soon as I change clang in the next commit.
llvm-svn: 184914
|
| |
|
|
| |
llvm-svn: 184910
|
| |
|
|
|
|
|
| |
debug statements to add a missing newline. Also canonicalize to '\n' instead of
"\n"; the latter calls a function with a loop the former does not.
llvm-svn: 184897
|
| |
|
|
| |
llvm-svn: 184892
|
| |
|
|
| |
llvm-svn: 184888
|
| |
|
|
|
|
|
|
|
| |
This is easier to read than the internal fixed-point representation.
If anybody knows the correct algorithm for converting fixed-point
numbers to base 10, feel free to fix it.
llvm-svn: 184881
|
| |
|
|
| |
llvm-svn: 184880
|
| |
|
|
|
|
| |
radar://14057959
llvm-svn: 184872
|
| |
|
|
|
|
|
|
|
|
|
| |
When a 1-element vector alloca is promoted, a store instruction can often be
rewritten without converting the value to a scalar and using an insertelement
instruction to stuff it into the new alloca. This patch just adds a check
to skip that conversion when it is unnecessary. This turns out to be really
important for some ARM Neon operations where <1 x i64> is used to get around
the fact that i64 is not a legal type.
llvm-svn: 184870
|