- Jul 16, 2013
-
-
Vladimir Medic authored
This patch represents Mips utilization of r186388 code that alows asm matcher to emit mnemonics contain '.' characters. This makes asm parser code simpler and more efficient. llvm-svn: 186397
-
NAKAMURA Takumi authored
g++ (GCC) 4.4.4 20100630 (Red Hat 4.4.4-10) llvm-svn: 186396
-
Tim Northover authored
Intrinsics already existed for the 64-bit variants, so these support operations of size at most 32-bits. llvm-svn: 186392
-
Renato Golin authored
This patch enables calls to __aeabi_idivmod when in EABI mode, by using the remainder value returned on registers (R1), enabled by the ARM triple "none-eabi". Note that Darwin and GNUEABI triples will continue lowering on GNU style, that is, using the stack for the remainder. Still need to add SREM/UREM support fix for 64-bit lowering. llvm-svn: 186390
-
Craig Topper authored
llvm-svn: 186371
-
Hal Finkel authored
This change mirrors the changes that were made to the X86 and ARM targets to support subtarget feature changing. As indicated in r182899, the mechanism is still undergoing revision, and so as with the X86 and ARM targets, there is no test case yet (there is no effective functionality change). llvm-svn: 186357
-
- Jul 15, 2013
-
-
Hal Finkel authored
PPCInstrInfo::insertSelect and PPCInstrInfo::canInsertSelect were computing the common subclass of the true and false inputs, and then selecting either the 32-bit or the 64-bit isel variant based on the result of calling PPC::GPRCRegClass.hasSubClassEq(RC) and PPC::G8RCRegClass.hasSubClassEq(RC) (where RC is the common subclass). Unfortunately, this is not quite right: if we have something like this: %vreg8<def> = SELECT_CC_I8 %vreg4<kill>, %vreg7<kill>, %vreg6<kill>, 76; G8RC_and_G8RC_NOX0:%vreg8 CRRC:%vreg4 G8RC_NOX0:%vreg7,%vreg6 then the common subclass of G8RC_and_G8RC_NOX0 and G8RC_NOX0 is G8RC_NOX0, and G8RC_NOX0 is not a subclass of G8RC (because it also contains the ZERO8 pseudo-register). As a result, we also need to check the common subclass against GPRC_NOR0 and G8RC_NOX0 explicitly. This had not been a problem for clients of insertSelect that called canInsertSelect first (because it had a compensating mistake), but insertSelect is also used by the PPC pseudo-instruction expander, and this error was causing a problem in that context. This problem was found by csmith. llvm-svn: 186343
-
Tom Stellard authored
https://bugs.freedesktop.org/show_bug.cgi?id=65873 llvm-svn: 186339
-
Job Noorman authored
llvm-svn: 186321
-
Craig Topper authored
llvm-svn: 186311
-
Craig Topper authored
llvm-svn: 186309
-
Craig Topper authored
llvm-svn: 186308
-
Craig Topper authored
llvm-svn: 186307
-
Craig Topper authored
llvm-svn: 186301
-
- Jul 14, 2013
-
-
Anton Korobeynikov authored
Patch by Job! llvm-svn: 186291
-
Anton Korobeynikov authored
llvm-svn: 186283
-
Craig Topper authored
llvm-svn: 186274
-
- Jul 13, 2013
-
-
Joerg Sonnenberger authored
between ELF (Linux, FreeBSD, NetBSD) and OSX as platform for the assembler dialect. llvm-svn: 186252
-
Akira Hatanaka authored
llvm-svn: 186227
-
JF Bastien authored
ARM paired GPR COPY was being lowered to two MOVr without CC. This patch puts the CC back. My test is a reduction of the case where I encountered the issue, 64-bit atomics use paired GPRs. The issue only occurs with selectionDAG, FastISel doesn't encounter it so I didn't bother calling it. llvm-svn: 186226
-
Akira Hatanaka authored
llvm-svn: 186222
-
Eric Christopher authored
llvm-svn: 186212
-
- Jul 12, 2013
-
-
Benjamin Kramer authored
llvm-svn: 186196
-
Arnold Schwaighofer authored
radar://14351991 llvm-svn: 186189
-
Arnold Schwaighofer authored
Fixes a 35% degradation compared to unvectorized code in MiBench/automotive-susan and an equally serious regression on a private image processing benchmark. radar://14351991 llvm-svn: 186188
-
Arnold Schwaighofer authored
Address calculation for gather/scather in vectorized code can incur a significant cost making vectorization unbeneficial. Add infrastructure to add cost. Tests and cost model for targets will be in follow-up commits. radar://14351991 llvm-svn: 186187
-
Tom Stellard authored
Patch by: Niels Ole Salscheider Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 186182
-
Tom Stellard authored
Patch by: Niels Ole Salscheider Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 186181
-
Tom Stellard authored
Patch by: Niels Ole Salscheider Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 186180
-
Tom Stellard authored
Patch by: Niels Ole Salscheider Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 186179
-
Tom Stellard authored
Patch by: Niels Ole Salscheider Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 186178
-
Tom Stellard authored
Patch by: Niels Ole Salscheider Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 186177
-
Benjamin Kramer authored
In particular: movsbw %al, %ax --> cbtw movswl %ax, %eax --> cwtl movslq %eax, %rax --> cltq According to Intel's manual those have the same performance characteristics but come with a smaller encoding. llvm-svn: 186174
-
Stephen Lin authored
Patch by Andrea Di Biagio llvm-svn: 186165
-
Vladimir Medic authored
llvm-svn: 186151
-
Richard Sandiford authored
Normal (sext (setcc ...)) sequences are optimised into (select_cc ..., -1, 0) by DAGCombiner::visitSIGN_EXTEND. However, this is deliberately not done for vectors, and after vector type legalization we have (sext_inreg (setcc ...)) instead. I wondered about trying to extend DAGCombiner to handle this case too, but it seemed to be a loss on some other targets I tried, even those for which SETCC isn't "legal" and SELECT_CC is. llvm-svn: 186149
-
Richard Sandiford authored
GPR and FPR constraints like "{r2}" and "{f2}" weren't handled correctly because the name-to-regno mapping depends on the value type and (because of that) the internal names in RegStrings are not the same as the AsmName. CC constraints like "{cc}" didn't work either because there was no associated register class. llvm-svn: 186148
-
Richard Sandiford authored
If the source of these instructions is spilled we should load the destination. If the destination is spilled we should store the source. llvm-svn: 186147
-
Charles Davis authored
Summary: This patch adds explicit calling convention types for the Win64 and System V/x86-64 ABIs. This allows code to override the default, and use the Win64 convention on a target that wants to use SysV (and vice-versa). This is needed to implement the `ms_abi` and `sysv_abi` GNU attributes. Reviewers: CC: llvm-svn: 186144
-
- Jul 11, 2013
-
-
Hal Finkel authored
We had patterns to match v4i32 immAllZerosV -> V_SET0, but not patterns for v8i16 (which occurs in the test case) or v16i8. The same was true for V_SETALLONES (so I added the associated patterns for those as well). Another bug found by llvm-stress. llvm-svn: 186108
-