- Jul 13, 2013
-
-
Akira Hatanaka authored
llvm-svn: 186222
-
Bill Wendling authored
Now that we have robust function attributes, don't use a command line option to specify the stack protecto buffer size. llvm-svn: 186217
-
Andrew Trick authored
This is a reimplemntation of the patch originally in r186107. llvm-svn: 186215
-
Andrew Trick authored
llvm-svn: 186214
-
Andrew Trick authored
llvm-svn: 186213
-
Eric Christopher authored
llvm-svn: 186212
-
- Jul 12, 2013
-
-
Rafael Espindola authored
This fixes two bugs is lib/Object that the use in llvm-ar found: * In OS X created archives, the name can be padded with nulls. Strip them. * In the constructor, remember the first non special member and use that in begin_children. This makes sure we skip all special members, not just the first one. The change to llvm-ar itself consist of * Using lib/Object for reading archives instead of ArchiveReader.cpp. * Writing the modified archive directly, instead of creating an in memory representation. The old Archive library was way more general than what is needed, as can be seen by the diffstat of this patch. Having llvm-ar using lib/Object now opens the way for creating regular symbol tables for both native objects and bitcode files so that we can use those archives for LTO. llvm-svn: 186197
-
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
-
Rafael Espindola authored
llvm-svn: 186159
-
Chandler Carruth authored
against a constant." This reverts commit r186107. It didn't handle wrapping arithmetic in the loop correctly and thus caused the following C program to count from 0 to UINT64_MAX instead of from 0 to 255 as intended: #include <stdio.h> int main() { unsigned char first = 0, last = 255; do { printf("%d\n", first); } while (first++ != last); } Full test case and instructions to reproduce with just the -indvars pass sent to the original review thread rather than to r186107's commit. llvm-svn: 186152
-
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
-
Shuxin Yang authored
Thank Nick for figuring out these problems. llvm-svn: 186146
-
Nadav Rotem authored
llvm-svn: 186145
-
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
-
NAKAMURA Takumi authored
It fixes compatibility in llvm/test/Object/archive-toc.test. llvm-svn: 186142
-
Manman Ren authored
replaceFrameIndices(MF) will iterate over the BBs and call replaceFrameIndices(BB). No functionality change. llvm-svn: 186141
-
Nadav Rotem authored
SLPVectorize: Replace the code that checks for vectorization candidates in successor blocks with code that scans PHINodes. Before we could vectorize PHINodes scanning successors was a good way of finding candidates. Now we can vectorize the phinodes which is simpler. llvm-svn: 186139
-
- Jul 11, 2013
-
-
Nadav Rotem authored
llvm-svn: 186116
-
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
-
Andrew Trick authored
Patch by Michele Scandale! Adds a special handling of the case where, during the loop exit condition rewriting, the exit value is a constant of bitwidth lower than the type of the induction variable: instead of introducing a trunc operation in order to match correctly the operand types, it allows to convert the constant value to an equivalent constant, depending on the initial value of the induction variable and the trip count, in order have an equivalent comparison between the induction variable and the new constant. llvm-svn: 186107
-
Hal Finkel authored
This fixes a bug (found by csmith) at -O0 where we attempt to create a RLWIMI with an out-of-range operand. Most uses of the isRunOfOnes function are guarded by a condition that the value is not zero. This was not true in two places, and in both places a zero input would result in an out-of-rage MB value (= 32). To fix this, isRunOfOnes returns false on a zero input (and I've remove one now-redundant guard). llvm-svn: 186101
-
Craig Topper authored
llvm-svn: 186098
-
Rafael Espindola authored
llvm-svn: 186096
-
Benjamin Kramer authored
No functionality change. llvm-svn: 186095
-
Rafael Espindola authored
llvm-svn: 186092
-
Benjamin Kramer authored
Arithmetic on ConstantRanges creates a lot of large temporary APInts that benefit from move semantics. llvm-svn: 186091
-