| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 141358
|
| |
|
|
|
|
| |
Fixes <rdar://problem/10235725>
llvm-svn: 141357
|
| |
|
|
| |
llvm-svn: 141356
|
| |
|
|
| |
llvm-svn: 141354
|
| |
|
|
|
|
| |
64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine.
llvm-svn: 141353
|
| |
|
|
| |
llvm-svn: 141342
|
| |
|
|
|
|
|
| |
others. They take the call site value. Determine if it's a proper value. And
then jumps to the correct call site via a jump table.
llvm-svn: 141341
|
| |
|
|
|
|
| |
perform the check before adding the Thumb predicate, which pops on entry off the ITBlock queue.
llvm-svn: 141339
|
| |
|
|
|
|
| |
with this patch.
llvm-svn: 141333
|
| |
|
|
| |
llvm-svn: 141327
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 141323
|
| |
|
|
|
|
| |
Place the immediate to OR into a register so that it works.
llvm-svn: 141319
|
| |
|
|
|
|
| |
* Some code cleanup.
llvm-svn: 141317
|
| |
|
|
|
|
|
|
|
| |
Fix VarListElementInit::resolveListElementReference to return a
partially resolved VarListElementInint in the case where full
resolution is not possible. This allows TableGen to make forward
progress resolving certain complex list expressions.
llvm-svn: 141315
|
| |
|
|
| |
llvm-svn: 141313
|
| |
|
|
| |
llvm-svn: 141306
|
| |
|
|
| |
llvm-svn: 141305
|
| |
|
|
| |
llvm-svn: 141299
|
| |
|
|
|
|
| |
Compare the entire keyword string.
llvm-svn: 141295
|
| |
|
|
|
|
|
|
| |
They are not in sync now, for example Bitcast would show up as LLVMCall.
So instead introduce 2 functions that map to and from the opcodes in the C
bindings.
llvm-svn: 141290
|
| |
|
|
| |
llvm-svn: 141288
|
| |
|
|
| |
llvm-svn: 141287
|
| |
|
|
| |
llvm-svn: 141286
|
| |
|
|
| |
llvm-svn: 141285
|
| |
|
|
|
|
| |
was done by creating a new register group that excludes AX registers. Fixes PR10345. Also added aliases for flipping the order of the operands of xchg <reg>, %eax.
llvm-svn: 141274
|
| |
|
|
| |
llvm-svn: 141266
|
| |
|
|
|
|
|
|
| |
to an infinite loop because of the def-use chains.
Also use a frame load instead of store for the LD instruction.
llvm-svn: 141263
|
| |
|
|
| |
llvm-svn: 141248
|
| |
|
|
|
|
|
|
| |
merging an lsl #2 that has multiple uses on A9. This shift is free, so there is
no problem merging it in multiple places. Other unprofitable shifts will not be
merged.
llvm-svn: 141247
|
| |
|
|
|
|
| |
number (18) for the proper addressing mode.
llvm-svn: 141245
|
| |
|
|
|
|
|
|
| |
For consistency, prefix multiclass template arg names with the
multiclass name followed by "::" to avoid name clashes among
multiclass arguments and other entities in the multiclass.
llvm-svn: 141239
|
| |
|
|
|
|
|
|
|
|
| |
Process each multidef declared in a multiclass. Iterate through the
list and instantiate a def in the multiclass for each item, resolving
the list item to the temporary iterator (possibly) used in the
multidef ObjectBody. We then process each generated def in the normal
way.
llvm-svn: 141233
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add parser support to recognize multidefs. No processing on the
multidef is done at this point. The grammar is:
MultiDef = MULTIDEF ObjectName < Value, Declaration, Value > ObjectBody
The first Value must be resolveable to a list and the second Value
must be resolveable to an integer. The Declaration is a temporary
value used as an iterator to refer to list items during processing.
It may be passed into the ObjectBody where it will be substituted with
the list value used to instantiate each def.
llvm-svn: 141232
|
| |
|
|
|
|
| |
Add keyword support for multidefs.
llvm-svn: 141231
|
| |
|
|
|
|
|
|
| |
Move the code to instantiate a multiclass def, bind its arguments and
resolve its members into three helper functions. These will be reused
to support a new kind of multiclass def: a multidef.
llvm-svn: 141229
|
| |
|
|
|
|
| |
While I'm here, fix the related issue with strncmp, add some actual tests for strcmp and strncmp, and start using StringRef::compare for constant folding instead of using strcmp/strncmp so that the optimized IR isn't dependent on the host's implementation of strcmp.
llvm-svn: 141227
|
| |
|
|
|
|
| |
site.
llvm-svn: 141226
|
| |
|
|
|
|
|
| |
to the landing pad. This will be used by the back-end to generate the jump
tables for dispatching the arriving longjmp in sjlj eh.
llvm-svn: 141224
|
| |
|
|
| |
llvm-svn: 141221
|
| |
|
|
|
|
|
|
|
| |
PhysReg operands are not allowed to have sub-register indices at all.
For virtual registers with sub-reg indices, check that all registers in
the register class support the sub-reg index.
llvm-svn: 141220
|
| |
|
|
| |
llvm-svn: 141219
|
| |
|
|
| |
llvm-svn: 141218
|
| |
|
|
| |
llvm-svn: 141214
|
| |
|
|
|
|
|
|
| |
Just pull the instruction name, but don't change the order of anything
else. That keeps --debug happy and non-crashing, but doesn't change
how the worklist gets built.
llvm-svn: 141210
|
| |
|
|
| |
llvm-svn: 141209
|
| |
|
|
|
|
|
|
|
|
|
|
| |
EXTRACT_SUBREG is emitted as %dst = COPY %src:sub, so there is no need to
constrain the %dst register class. RegisterCoalescer will apply the
necessary constraints if it decides to eliminate the COPY.
The %src register class does need to be constrained to something with
the right sub-registers, though. This is currently done manually with
COPY_TO_REGCLASS nodes. They can possibly be removed after this patch.
llvm-svn: 141207
|
| |
|
|
|
|
|
|
| |
There are fewer registers with sub_8bit sub-registers in 32-bit mode
than in 64-bit mode. In 32-bit mode, sub_8bit behaves the same as
sub_8bit_hi.
llvm-svn: 141206
|
| |
|
|
|
|
| |
fixes PR11038, but there are still some cleanups to be done.
llvm-svn: 141204
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When updating the worklist for InstCombine, the Add/AddUsersToWorklist
functions may access the instruction(s) being added, for debug output for
example. If the instructions aren't yet added to the basic block, this
can result in a crash. Finish the instruction transformation before
adjusting the worklist instead.
rdar://10238555
llvm-svn: 141203
|
| |
|
|
| |
llvm-svn: 141199
|