| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 190448
|
| |
|
|
| |
llvm-svn: 190442
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were figuring out whether to use tPICADD or PICADD, then just using
tPICADD unconditionally anyway. Oops.
A testcase from someone familiar enough with ELF to produce one would
be appreciated. The existing PIC testcase correctly verifies the .s
generated, but that doesn't catch this bug, which only showed up in
direct-to-object mode.
http://llvm.org/bugs/show_bug.cgi?id=17180
llvm-svn: 190417
|
| |
|
|
|
|
|
| |
This commit removes the unused "AttributeItem" from
ObjectAttributeEmitter.
llvm-svn: 190412
|
| |
|
|
| |
llvm-svn: 190404
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main complication here is that TM and TMY (the memory forms) set
CC differently from the register forms. When the tested bits contain
some 0s and some 1s, the register forms set CC to 1 or 2 based on the
value the uppermost bit. The memory forms instead set CC to 1
regardless of the uppermost bit.
Until now, I've tried to make it so that a branch never tests for an
impossible CC value. E.g. NR only sets CC to 0 or 1, so branches on the
result will only test for 0 or 1. Originally I'd tried to do the same
thing for TM and TMY by using custom matching code in ISelDAGToDAG.
That ended up being very ugly though, and would have meant duplicating
some of the chain checks that the common isel code does.
I've therefore gone for the simpler alternative of adding an extra
operand to the TM DAG opcode to say whether a memory form would be OK.
This means that the inverse of a "TM;JE" is "TM;JNE" rather than the
more precise "TM;JNLE", just like the inverse of "TMLL;JE" is "TMLL;JNE".
I suppose that's arguably less confusing though...
llvm-svn: 190400
|
| |
|
|
|
|
| |
The dotp_[su].b instructions never existed in any revision of the MSA spec.
llvm-svn: 190398
|
| |
|
|
|
|
| |
register when PFU is 32 bit.
llvm-svn: 190397
|
| |
|
|
| |
llvm-svn: 190396
|
| |
|
|
| |
llvm-svn: 190373
|
| |
|
|
| |
llvm-svn: 190366
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work on this project was left in an unfinished and inconsistent state.
Hopefully someone will eventually get a chance to implement this feature, but
in the meantime, it is better to put things back the way the were. I have
left support in the bitcode reader to handle the case-range bitcode format,
so that we do not lose bitcode compatibility with the llvm 3.3 release.
This reverts the following commits: 155464, 156374, 156377, 156613, 156704,
156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575,
157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884,
157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100,
159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659,
159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736
llvm-svn: 190328
|
| |
|
|
|
|
|
| |
stores, make sure the load or store that accesses the higher half does not have
an alignment that is larger than the offset from the original address.
llvm-svn: 190318
|
| |
|
|
|
|
|
|
|
| |
IT blocks can only be one instruction lonf, and can only contain a subset of
the 16 instructions.
Patch by Artyom Skrobov!
llvm-svn: 190309
|
| |
|
|
| |
llvm-svn: 190308
|
| |
|
|
| |
llvm-svn: 190304
|
| |
|
|
|
|
|
|
|
|
|
| |
Fix XCoreLowerThreadLocal trying to initialise globals
which have no initializer.
Add handling of const expressions containing thread local variables.
These need to be replaced with instructions, as the thread ID is
used to access the thread local variable.
llvm-svn: 190300
|
| |
|
|
|
|
|
| |
This sidesteps a bug in PrescheduleNodesWithMultipleUses() which
does not check if callResources will be affected by the transformation.
llvm-svn: 190299
|
| |
|
|
| |
llvm-svn: 190298
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to generate the compact unwind encoding from the machine
instructions. However, this had the problem that if the user used `-save-temps'
or compiled their hand-written `.s' file (with CFI directives), we wouldn't
generate the compact unwind encoding.
Move the algorithm that generates the compact unwind encoding into the
MCAsmBackend. This way we can generate the encoding whether the code is from a
`.ll' or `.s' file.
<rdar://problem/13623355>
llvm-svn: 190290
|
| |
|
|
|
|
|
|
| |
following 26 instructions,
SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL
llvm-svn: 190288
|
| |
|
|
| |
llvm-svn: 190259
|
| |
|
|
|
|
| |
flag.
llvm-svn: 190258
|
| |
|
|
|
|
|
|
|
|
| |
precision loads and stores as well as reg+imm double precision loads and stores.
Previously, expansion of loads and stores was done after register allocation,
but now it takes place during legalization. As a result, users will see double
precision stores and loads being emitted to spill and restore 64-bit FP registers.
llvm-svn: 190235
|
| |
|
|
| |
llvm-svn: 190234
|
| |
|
|
| |
llvm-svn: 190232
|
| |
|
|
|
|
| |
into a 5-bit or 6-bit field.
llvm-svn: 190226
|
| |
|
|
| |
llvm-svn: 190224
|
| |
|
|
| |
llvm-svn: 190221
|
| |
|
|
|
|
|
|
| |
which is
equivalent to "beq $zero, $zero, offset".
llvm-svn: 190220
|
| |
|
|
| |
llvm-svn: 190219
|
| |
|
|
|
|
| |
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 190200
|
| |
|
|
| |
llvm-svn: 190156
|
| |
|
|
|
|
|
| |
Tested with 'llvm-tblgen -print-records' which outputs identical records before
and after this patch.
llvm-svn: 190155
|
| |
|
|
|
|
| |
Test cases are included in patch.
llvm-svn: 190154
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190153
|
| |
|
|
|
|
| |
cases are included in patch.
llvm-svn: 190152
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190151
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190150
|
| |
|
|
|
|
| |
cases are included in patch.
llvm-svn: 190148
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190146
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190145
|
| |
|
|
|
|
| |
check tests.
llvm-svn: 190144
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190143
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190142
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190141
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190140
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The architecture has many comparison instructions, including some that
extend one of the operands. The signed comparison instructions use sign
extensions and the unsigned comparison instructions use zero extensions.
In cases where we had a free choice between signed or unsigned comparisons,
we were trying to decide at lowering time which would best fit the available
instructions, taking things like extension type into account. The code
to do that was getting increasingly hairy and was also making some bad
decisions. E.g. when comparing the result of two LLCs, it is better to use
CR rather than CLR, since CR can be fused with a branch while CLR can't.
This patch removes the lowering code and instead adds an operand to
integer comparisons to say whether signed comparison is required,
whether unsigned comparison is required, or whether either is OK.
We can then leave the choice of instruction up to the normal isel code.
llvm-svn: 190138
|
| |
|
|
|
|
| |
No functional change
llvm-svn: 190134
|
| |
|
|
|
|
|
|
| |
Their default is to be the same as the result register set.
No functional change
llvm-svn: 190133
|