- Nov 30, 2012
-
-
Bill Wendling authored
llvm-svn: 169046
-
Bill Wendling authored
The original patch removed a bunch of code that the SjLjEHPrepare pass placed into the entry block if all of the landing pads were removed during the CodeGenPrepare class. The more natural way of doing things is to run the CGP *before* we run the SjLjEHPrepare pass. Make it so! llvm-svn: 169044
-
Pedro Artigas authored
llvm-svn: 169043
-
Jakob Stoklund Olesen authored
This causes llc to repeat the module compilation N times, making it possible to get more accurate information from -time-passes when compiling small modules. llvm-svn: 169040
-
Jakob Stoklund Olesen authored
This avoids unidentified duplicates in the pass execution time report when a pass runs more than once in the pass manager pipeline. llvm-svn: 169039
-
Daniel Dunbar authored
llvm-svn: 169038
-
Chad Rosier authored
llvm-svn: 169026
-
Pedro Artigas authored
reviewed by Michael Ilseman <milseman@apple.com> llvm-svn: 169025
-
Sebastian Pop authored
Codegen was failing with an assertion because of unexpected vector operands when legalizing the selection DAG for a MUL instruction. The asserting code was legalizing multiplies for vectors of size 128 bits. It uses a custom lowering to try and detect cases where it can use a VMULL instruction instead of a VMOVL + VMUL. The code was looking for input operands to the MUL that had been sign or zero extended. If it found the extended operands it would drop the sign/zero extension and use the original vector size as input to a VMULL instruction. The code assumed that the original input vector was 64 bits so that after dropping the extension it would fit directly into a D register and could be used as an operand of a VMULL instruction. The input code that trigger the failure used a vector of <4 x i8> that was sign extended to <4 x i32>. It was not safe to drop the sign extension in this case because the original vector is only 32 bits wide. The fix is to insert a sign extension for the vector to reach the required 64 bit size. In this particular example, the vector would need to be sign extented to a <4 x i16>. llvm-svn: 169024
-
Chad Rosier authored
llvm-svn: 169020
-
Jyotsna Verma authored
llvm-svn: 169018
-
Nadav Rotem authored
Remove the use of LPPassManager. We can remove LPM because we dont need to run any additional loop passes on the new vector loop. llvm-svn: 169016
-
Eli Bendersky authored
llvm-svn: 169002
-
Eli Bendersky authored
instead of 1 or true (?!) llvm-svn: 169001
-
NAKAMURA Takumi authored
FIXME: Please add another RUN line if you would like to check also on ppc64. llvm-svn: 168999
-
Adhemerval Zanella authored
instruction (vmaddfp) to conform with IEEE to ensure the sign of a zero result when resulting product is -0.0. The -0.0 vector addend to vmaddfp is generated by a creating a vector with full bits sets and then shifting each elements by 31-bits to the left, resulting in a vector of 0x80000000 (or -0.0 as float). The 'buildvec_canonicalize.ll' was adjusted to reflect this change and the 'vec_mul.ll' was complemented with the float vector multiplication test. llvm-svn: 168998
-
Evgeniy Stepanov authored
llvm-svn: 168997
-
Chandler Carruth authored
Rationale: 1) This was the name in the comment block. ;] 2) It matches Clang's __has_feature naming convention. 3) It matches other compiler-feature-test conventions. Sorry for the noise. =] I've also switch the comment block to use a \brief tag and not duplicate the name. llvm-svn: 168996
-
Kostya Serebryany authored
llvm-svn: 168995
-
Chandler Carruth authored
references from whether it supports an R-value reference *this. No version of GCC today supports the latter, which breaks GCC C++11 compiles of LLVM and Clang now. Also add doxygen comments clarifying what's going on here, and update the usage in Optional. I'll update the usages in Clang next. llvm-svn: 168993
-
Patrik Hagglund authored
For example, don't allow empty strings to be passed to getInt. Move asserts inside parseSpecifier. (One day we may want to pass parse error messages to the user - from LLParser - instead of using asserts, but keep the code simple until then. There have been an attempt to do this. See r142288, which got reverted, and r142605.) llvm-svn: 168991
-
Chandler Carruth authored
We're iterating over a non-deterministically ordered container looking for two saturating flags. To do this correctly, we have to saturate both, and only stop looping if both saturate to their final value. Otherwise, which flag we see first changes the result. This is also a micro-optimization of the previous version as now we don't go into the (possibly expensive) test logic once the first violation of either constraint is detected. llvm-svn: 168989
-
Chandler Carruth authored
functionality changed. Evan's commit r168970 moved the code that the primary comment in this function referred to to the other end of the function without moving the comment, and there has been a steady creep of "boolean" logic in it that is simpler if handled via early exit. That way each special case can have its own comments. I've also made the variable name a bit more explanatory than "AllFit". This is in preparation to fix the non-deterministic output of this function. llvm-svn: 168988
-
Eric Christopher authored
llvm-svn: 168986
-
Jyotsna Verma authored
llvm-svn: 168983
-
Jyotsna Verma authored
addressing mode. llvm-svn: 168976
-
Meador Inge authored
The simplify-libcalls pass maintained a statistic to count the number of library calls that have been simplified. Now that library call simplification is being carried out in instcombine the statistic should be moved to there. llvm-svn: 168975
-
Chandler Carruth authored
depends on the IR infrastructure, there is no sense in it being off in Support land. This is in preparation to start working to expand InstVisitor into more special-purpose visitors that are still generic and can be re-used across different passes. The expansion will go into the Analylis tree though as nothing in VMCore needs it. llvm-svn: 168972
-
Evan Cheng authored
the tables cannot fit in registers (i.e. bitmap), do not emit the table if it's using an illegal type. rdar://12779436 llvm-svn: 168970
-
Preston Briggs authored
more information for dependences between instructions that don't share a common loop. Updated the test results appropriately. llvm-svn: 168965
-
Jordan Rose authored
This expands to '&', and is intended to be used when an /optional/ rvalue override is available. Before: void foo() const { ... } After: void foo() const LLVM_LVALUE_FUNCTION { ... } void foo() && { ... } This is used to allow moving the contents of an Optional. llvm-svn: 168963
-
Kevin Enderby authored
which would then cause an assert when printed. rdar://11437956 llvm-svn: 168960
-
- Nov 29, 2012
-
-
Eric Christopher authored
llvm-svn: 168952
-
Dan Gohman authored
llvm-svn: 168946
-
Michael Ilseman authored
llvm-svn: 168943
-
Eli Bendersky authored
same string llvm-svn: 168942
-
Dan Gohman authored
llvm-svn: 168941
-
Chad Rosier authored
llvm-svn: 168937
-
Chad Rosier authored
llvm-svn: 168936
-
Benjamin Kramer authored
Should bring the buildbots back to life. llvm-svn: 168935
-