- May 16, 2013
-
-
Daniel Jasper authored
llvm-svn: 182015
-
Edwin Vane authored
The recent improvement to the Use Nullptr Transform for macro arg expansions wasn't testing that only allowed NULL macros used in macro args can be transformed. This revision replaces a TODO to that effect. Fixes PR15955. llvm-svn: 182014
-
Edwin Vane authored
Several free functions related to macro arg testing are being moved into CastSequenceVisitor to facilitate upcoming fix. llvm-svn: 182013
-
Ulrich Weigand authored
[PowerPC] Report true displacement value from getPreIndexedAddressParts DAGCombiner::CombineToPreIndexedLoadStore calls a target routine to decompose a memory address into a base/offset pair. It expects the offset (if constant) to be the true displacement value in order to perform optional additional optimizations; in particular, to convert other uses of the original pointer into uses of the new base pointer after pre-increment. The PowerPC implementation of getPreIndexedAddressParts, however, simply calls SelectAddressRegImm, which returns a TargetConstant. This value is appropriate for encoding into the instruction, but it is not always usable as true displacement value: - Its type is always MVT::i32, even on 64-bit, where addresses ought to be i64 ... this causes the optimization to simply always fail on 64-bit due to this line in DAGCombiner: // FIXME: In some cases, we can be smarter about this. if (Op1.getValueType() != Offset.getValueType()) { - Its value is truncated to an unsigned 16-bit value if negative. This causes the above opimization to generate wrong code. This patch fixes both problems by simply returning the true displacement value (in its original type). This doesn't affect any other user of the displacement. llvm-svn: 182012
-
Rafael Espindola authored
llvm-svn: 182011
-
Alexander Potapenko authored
llvm-svn: 182010
-
Rafael Espindola authored
I am about to refactor the calls to addFrameMove and some of the ppc ones were not being tested. llvm-svn: 182009
-
Alexander Potapenko authored
llvm-svn: 182008
-
Richard Sandiford authored
llvm-svn: 182007
-
Kostya Serebryany authored
llvm-svn: 182006
-
Kostya Serebryany authored
[asan] symbolize when possible, even if ASAN_SYMBOLIZER_PATH is not provided. On Linux this will use dl_iterate_phdr instead of /proc/self/maps, even if the symbolizer is not installed llvm-svn: 182005
-
Evgeniy Stepanov authored
llvm-svn: 182004
-
Daniel Jasper authored
llvm-svn: 182003
-
Sergey Matveev authored
llvm-svn: 182002
-
Daniel Jasper authored
llvm-svn: 182001
-
Daniel Jasper authored
This enables things like: for (int &v : vec) v *= 2; Enabled for Google style. llvm-svn: 182000
-
Benjamin Kramer authored
llvm-svn: 181999
-
Enea Zaffanella authored
Added testcase corresponding to PR15991. llvm-svn: 181998
-
Daniel Jasper authored
It turns out that several implementations go through the trouble of setting up a SourceManager and Lexer and abstracting this into a function makes usage easier. Also abstracts SourceManager-independent ranges out of tooling::Refactoring and provides a convenience function to create them from line ranges. llvm-svn: 181997
-
Daniel Jasper authored
Before: void f() {} void g() { } // comment After: void f() {} void g() {} // comment llvm-svn: 181996
-
Hans Wennborg authored
This addresses Richard's comment on r181880. llvm-svn: 181995
-
Evgeniy Stepanov authored
They are always defined in the main executable. llvm-svn: 181994
-
Patrik Hagglund authored
-Wunused-but-set-variable. Leftover from r181979. llvm-svn: 181993
-
Kostya Serebryany authored
llvm-svn: 181992
-
Kostya Serebryany authored
llvm-svn: 181991
-
Kostya Serebryany authored
[sanitizer] fix the GetBlockBegin overflow bug while preserving the performance optimization (use 32-bit division when possible). Improve the benchmarks that checks for performance of GetBlockBegin/GetMetaData llvm-svn: 181989
-
NAKAMURA Takumi authored
Clang has an issue between mingw/include/float.h and clang/Headers/float.h with cyclic include_next. For now, it should work to suppress #include_next in clang/float.h with an explicit target. (It may work with -U__MINGW32__, though.) llvm-svn: 181988
-
Tobias Grosser authored
When the Polly code generation was written we did not correctly update the LoopInfo data, but still claimed that the loop information is correct. This does not only lead to missed optimizations, but it can also cause miscompilations in case passes such as LoopSimplify are run after Polly. Reported-by:
Sergei Larin <slarin@codeaurora.org> llvm-svn: 181987
-
Tobias Grosser authored
BeforeBB | v GuardBB / \ __ PreHeaderBB \ / \ / | latch HeaderBB | \ / \ / < \ / \ / ExitBB This does not only remove the need for an explicit loop rotate pass, but it also gives us the possibility to skip the construction of the guard condition in case the loop is known to be executed at least once. We do not yet exploit this, but by implementing this analysis in the isl code generator we should be able to remove more guards than the generic loop rotate pass can. Another point is that loop rotation can introduce additional PHI nodes, which may hide that a loop can be executed in parallel. This change avoids this complication and will make it easier to move the openmp code generation into a separate pass. llvm-svn: 181986
-
Richard Smith authored
a FieldDecl from it, and propagate both into the closure type and the LambdaExpr. You can't do much useful with them yet -- you can't use them within the body of the lambda, because we don't have a representation for "the this of the lambda, not the this of the enclosing context". We also don't have support or a representation for a nested capture of an init-capture yet, which was intended to work despite not being allowed by the current standard wording. llvm-svn: 181985
-
Kostya Serebryany authored
[sanitizer] added a test for a bug in allocator discovered by Sergey Matveev (uint32 overflow in GetBlockBegin) llvm-svn: 181984
-
Richard Smith authored
llvm-svn: 181983
-
Rafael Espindola authored
llvm-svn: 181982
-
Rafael Espindola authored
In the case of inline functions, we have to special case local types when they are used as template arguments to make sure the template instantiations are still uniqued in case the function itself is inlined. llvm-svn: 181981
-
Daniel Jasper authored
Before: f("a", "b" "c"); After: f("a", "b" "c"); llvm-svn: 181980
-
Rafael Espindola authored
getExceptionHandlingType is not ExceptionHandling::DwarfCFI on xcore, so etFrameInstructions is never called. There is no point creating cfi instructions if they are never used. llvm-svn: 181979
-
Richard Smith authored
llvm-svn: 181978
-
Rafael Espindola authored
Without this change nothing was covering this addFrameMove: // For 64-bit SVR4 when we have spilled CRs, the spill location // is SP+8, not a frame-relative slot. if (Subtarget.isSVR4ABI() && Subtarget.isPPC64() && (PPC::CR2 <= Reg && Reg <= PPC::CR4)) { MachineLocation CSDst(PPC::X1, 8); MachineLocation CSSrc(PPC::CR2); MMI.addFrameMove(Label, CSDst, CSSrc); continue; } llvm-svn: 181976
-
Rafael Espindola authored
llvm-svn: 181975
-
Lang Hames authored
llvm-svn: 181973
-