- Dec 25, 2013
-
-
Zoran Jovanovic authored
llvm-svn: 198009
-
Elena Demikhovsky authored
llvm-svn: 198008
-
Hao Liu authored
E.g. the codegen result is fmls v1.2s, v0.2s, v2.s[3] which is expected to be fmls v0.2s, v1.2s, v2.s[3] llvm-svn: 198001
-
- Dec 24, 2013
-
-
Richard Sandiford authored
llvm-svn: 197986
-
Richard Sandiford authored
...namely LOAD AND ADD, LOAD AND AND, LOAD AND OR and LOAD AND EXCLUSIVE OR. LOAD AND ADD LOGICAL isn't really separately useful for LLVM. I'll look at adding reusing the CC results in new year. llvm-svn: 197985
-
Richard Sandiford authored
llvm-svn: 197984
-
Elena Demikhovsky authored
llvm-svn: 197981
-
Hao Liu authored
llvm-svn: 197969
-
Kevin Qin authored
DAG.getVectorShuffle() doesn't always return a vector_shuffle node. If mask is the exact sequence of it's operand(For example, operand_0 is v8i8, and the mask is 0, 1, 2, 3, 4, 5, 6, 7), it will directly return that operand. So a check is added here. llvm-svn: 197967
-
Kevin Qin authored
This failure caused by improper condition when lowering shuffle_vector to scalar_to_vector. After this patch NEON_VDUP with v1i64 will not be generated. llvm-svn: 197966
-
Ana Pazos authored
Check for single use of fmul node in fused multiply patterns to allow generation of fused multiply add/sub instructions. Otherwise fmul operation ends up being repeated more than once which does not help peformance on targets with only one MAC unit, as for example cortex-a53. llvm-svn: 197929
-
Ana Pazos authored
The correct pattern matching should be: - fnmadd is (-Ra) + (-Rn)*Rm which should be matched as: fma (fneg node:$Rn), node:$Rm, (fneg node:$Ra) and as (f32 (fsub (f32 (fneg FPR32:$Ra)), (f32 (fmul FPR32:$Rn, FPR32:$Rm)))) - fnmsub is (-Ra) + Rn*Rm which should be matched as fma node:$Rn, node:$Rm, (fneg node:$Ra) and as (f32 (fsub (f32 (fmul FPR32:$Rn, FPR32:$Rm)), FPR32:$Ra)))) llvm-svn: 197928
-
Adrian Prantl authored
rdar://problem/11516681. llvm-svn: 197927
-
Andrew Trick authored
Split sadd.with.overflow into add + sadd.with.overflow to allow analysis and optimization. This should ideally be done after InstCombine, which can perform code motion (eventually indvars should run after all canonical instcombines). We want ISEL to recombine the add and the check, at least on x86. This is currently under an option for reducing live induction variables: -liv-reduce. The next step is reducing liveness of IVs that are live out of the overflow check paths. Once the related optimizations are fully developed, reviewed and tested, I do expect this to become default. llvm-svn: 197926
-
- Dec 23, 2013
-
-
Adrian Prantl authored
(optional) DWARF sections, so compiling with -g does not result in different code being generated. rdar://problem/15623193 llvm-svn: 197922
-
Saleem Abdulrasool authored
The bkpt mnemonic has an implicit immediate constant of 0 unless otherwise specified. Add an instruction alias for the unvalued breakpoint mnemonic to treat it as a 0. This improves compatibility with GNU AS. Signed-off-by:
Saleem Abdulrasool <compnerd@compnerd.org> llvm-svn: 197913
-
Richard Sandiford authored
If the Scalarizer scalarized a vector PHI but could not scalarize all uses of it, it would insert a series of insertelements to reconstruct the vector PHI value from the scalar ones. The problem was that it would emit these insertelements immediately after the PHI, even if there were other PHIs after it. llvm-svn: 197909
-
Richard Sandiford authored
The old code only worked for one index operand. Also handle "inbounds". llvm-svn: 197908
-
Kostya Serebryany authored
Summary: Before this change the instrumented code before Ret instructions looked like: <Unpoison Frame Redzones> if (Frame != OriginalFrame) // I.e. Frame is fake <Poison Complete Frame> Now the instrumented code looks like: if (Frame != OriginalFrame) // I.e. Frame is fake <Poison Complete Frame> else <Unpoison Frame Redzones> Reviewers: eugenis Reviewed By: eugenis CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2458 llvm-svn: 197907
-
Kostya Serebryany authored
llvm-svn: 197904
-
- Dec 22, 2013
-
-
Roman Divacky authored
llvm-svn: 197878
-
Benjamin Kramer authored
This tag isn't emitted by any compiler at the moment. PR18306. llvm-svn: 197877
-
Elena Demikhovsky authored
llvm-svn: 197876
-
Roman Divacky authored
llvm-svn: 197875
-
- Dec 21, 2013
-
-
Alp Toker authored
Backends like OptParserEmitter assume that record names can be used as valid identifiers. The period '.' in generated anonymous names broke that assumption, causing a build-time error and in practice forcing all records to be named. llvm-svn: 197869
-
Mark Lacey authored
llvm-svn: 197846
-
- Dec 20, 2013
-
-
Yuchen Wu authored
llvm-svn: 197839
-
Lang Hames authored
Found by inspection by Julien Lerouge. Thanks Julian! llvm-svn: 197833
-
Timur Iskhodzhanov authored
llvm-svn: 197831
-
Timur Iskhodzhanov authored
Reviewed at http://llvm-reviews.chandlerc.com/D2445 llvm-svn: 197826
-
Roman Divacky authored
llvm-svn: 197824
-
Zoran Jovanovic authored
llvm-svn: 197815
-
Rafael Espindola authored
llvm-svn: 197814
-
Richard Sandiford authored
If the extension of a loaded value is compared against zero and used in other arithmetic, InstCombine will change the comparison to use the unextended load. It's also possible that the comparison could be against the unextended load from the outset. In DAG form this becomes a truncation of an extending load. We want to strip the truncation if possible so that we can use load-and-test instructions. llvm-svn: 197804
-
Richard Sandiford authored
The handling of ANY_EXTEND and ZERO_EXTEND was too strict. In this context we can treat ZERO_EXTEND in much the same way as an AND and then also handle outermost ZERO_EXTENDs. I couldn't find a test that benefited from the ANY_EXTEND change, but it's more obvious to write it this way once SIGN_EXTEND and ZERO_EXTEND are handled differently. llvm-svn: 197802
-
Kai Nacke authored
Recently, support for krait cpu was added. This commit extends getHostCPUName() to return krait as cpu for the APQ8064 (a Krait 300). llvm-svn: 197792
-
Justin Bogner authored
If we happen to eliminate every case in a switch that has branch weights, we currently try to create metadata for the one remaining branch, triggering an assert. Instead, we need to check that the metadata we're trying to create is sensible. llvm-svn: 197791
-
Saleem Abdulrasool authored
The .pool directive is an alias for the .ltorg directive used to create a literal pool. Simply treat .pool as if .ltorg was passed. llvm-svn: 197787
-
Tom Stellard authored
v2: Add ftrunc->TRUNC pattern instead of replacing int_AMDGPU_trunc v3: move ftrunc pattern next to TRUNC definition, it's available since R600 Patch By: Jan Vesely Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> Signed-off-by:
Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 197783
-
Eric Christopher authored
assert that this is so. llvm-svn: 197780
-