- Apr 05, 2013
-
-
Michael J. Spencer authored
llvm-svn: 178914
-
Michael J. Spencer authored
llvm-svn: 178913
-
Shuxin Yang authored
This optimization is unstable at this moment; it 1) block us on a very important application 2) PR15200 3) test6 and test7 in test/Transforms/ScalarRepl/dynamic-vector-gep.ll (the CHECK command compare the output against wrong result) I personally believe this optimization should not have any impact on the autovectorized code, as auto-vectorizer is supposed to put gather/scatter in a "right" way. Although in theory downstream optimizaters might reveal some gather/scatter optimization opportunities, the chance is quite slim. For the hand-crafted vectorizing code, in term of redundancy elimination, load-CSE, copy-propagation and DSE can collectively achieve the same result, but in much simpler way. On the other hand, these optimizers are able to improve the code in a incremental way; in contrast, SROA is sort of all-or-none approach. However, SROA might slighly win in stack size, as it tries to figure out a stretch of memory tightenly cover the area accessed by the dynamic index. rdar://13174884 PR15200 llvm-svn: 178912
-
Argyrios Kyrtzidis authored
rdar://13535645 llvm-svn: 178911
-
Akira Hatanaka authored
llvm-mips-linux green. llvm-mips-linux runs on a big endian machine. This test passes if I change 'e' to 'E' in the target data layout string. llvm-svn: 178910
-
rdar://problem/13551789Douglas Gregor authored
It's possible for the lock file to disappear and the owning process to return before we're able to see the generated file. Spin for a little while to see if it shows up before failing. llvm-svn: 178909
-
rdar://problem/13551789Douglas Gregor authored
If the directory that will contain the unique file doesn't exist when we tried to create the file, but another process creates it before we get a chance to try creating it, we would bail out rather than try to create the unique file. llvm-svn: 178908
-
Ariel J. Bernal authored
cast UseNullptr previously matched the implicit cast to const pointer as well as the explicit cast within that has an implicit cast to nullptr as a descendant. -Refactored UseNullptr to avoid special-casing certain kinds of cast sequences -Added test cases. llvm-svn: 178907
-
Tanya Lattner authored
llvm-svn: 178906
-
Michael J. Spencer authored
llvm-svn: 178905
-
Rafael Espindola authored
llvm-svn: 178904
-
Fariborz Jahanian authored
// rdar://12379114 llvm-svn: 178903
-
Edwin Vane authored
llvm-svn: 178902
-
Edwin Vane authored
With cpp11-migrate core functionality moved to a separate library (for enabling unit tests) this library contained code that referenced symbols that are still in the main binary. On some platforms, the shared library build broke as a result. This revision fixes the dependency problem and is safe for the eventual lib-ification of the transforms as well. llvm-svn: 178901
-
Edwin Vane authored
With the lib-ification of cpp11-migrate, real unit tests can be written. Replacing dummy tests with some simple tests for the Transform public interface. llvm-svn: 178900
-
Anton Yartsev authored
Now treat AF_None family as impossible in isTrackedFamily() llvm-svn: 178899
-
Manman Ren authored
llvm-svn: 178898
-
rdar://problem/13563628Enrico Granata authored
Introducing a negative cache for ObjCLanguageRuntime::LookupInCompleteClassCache() This helps speed up the (common) case of us looking for classes that are hidden deep within Cocoa internals and repeatedly failing at finding type information for them. In order for this to work, we need to clean this cache whenever debug information is added. A new symbols loaded event is added that is triggered with add-dsym (before modules loaded would be triggered for both adding modules and adding symbols). Interested parties can register for this event. Internally, we make sure to clean the negative cache whenever symbols are added. Lastly, ClassDescriptor::IsTagged() has been refactored to GetTaggedPointerInfo() that also (optionally) returns info and value bits. In this way, data formatters can share tagged pointer code instead of duplicating the required arithmetic. llvm-svn: 178897
-
Rafael Espindola authored
These should really be templated like ELF, but this is a start. llvm-svn: 178896
-
Michael Gottesman authored
llvm-svn: 178895
-
Rafael Espindola authored
llvm-svn: 178894
-
Michael Gottesman authored
llvm-svn: 178893
-
Howard Hinnant authored
llvm-svn: 178892
-
Jordan Rose authored
As mentioned in the previous commit message, the use-after-free and double-free warnings for 'delete' are worth enabling even while the leak warnings still have false positives. llvm-svn: 178891
-
Jordan Rose authored
This splits the leak-checking part of alpha.cplusplus.NewDelete into a separate user-level checker, alpha.cplusplus.NewDeleteLeaks. All the difficult false positives we've seen with the new/delete checker have been spurious leak warnings; the use-after-free warnings and mismatched deallocator warnings, while rare, have always been valid. <rdar://problem/6194569> llvm-svn: 178890
-
Jim Ingham authored
llvm-svn: 178889
-
Daniel Jasper authored
(Don't ask, this was a user request). llvm-svn: 178888
-
Daniel Jasper authored
Before: bool operator< (const aaaaaaaaaaaaaaaaaaaaa &left, const aaaaaaaaaaaaaaaaaaaaa &right) { return left.group < right.group; } After: bool operator<(const aaaaaaaaaaaaaaaaaaaaa &left, const aaaaaaaaaaaaaaaaaaaaa &right) { return left.group < right.group; } llvm-svn: 178887
-
Manman Ren authored
llvm-svn: 178886
-
Timur Iskhodzhanov authored
llvm-svn: 178885
-
Renato Golin authored
llvm-svn: 178883
-
Chad Rosier authored
llvm-svn: 178882
-
Chad Rosier authored
memory operands. Essentially, this layers an infix calculator on top of the parsing state machine. The scale on the index register is still expected to be an immediate __asm mov eax, [eax + ebx*4] and will not work with more complex expressions. For example, __asm mov eax, [eax + ebx*(2*2)] The plus and minus binary operators assume the numeric value of a register is zero so as to not change the displacement. Register operands should never be an operand for a multiply or divide operation; the scale*indexreg expression is always replaced with a zero on the operand stack to prevent such a case. rdar://13521380 llvm-svn: 178881
-
Reid Kleckner authored
Summary: Sets a report hook that emulates pressing "retry" in the "abort, retry, ignore" dialog box that _CrtDbgReport normally raises. There are many other ways to disable assertion reports, but this was the only way I could find that still calls our exception handler. Reviewers: Bigcheese CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D625 llvm-svn: 178880
-
Rafael Espindola authored
What was missing was were the type strong operator|. llvm-svn: 178879
-
Eli Bendersky authored
llvm-svn: 178878
-
Rafael Espindola authored
llvm-svn: 178877
-
Kostya Serebryany authored
llvm-svn: 178876
-
Rafael Espindola authored
InMemoryStruct is extremely dangerous as it returns data from an internal buffer when the endiannes doesn't match. This should fix the tests on big endian hosts. llvm-svn: 178875
-
Kostya Serebryany authored
llvm-svn: 178874
-