- May 25, 2016
-
-
Benjamin Kramer authored
llvm-svn: 270704
-
Eric Liu authored
llvm-svn: 270703
-
Nico Weber authored
When a function/method use a parameter with "ns_consumed" attribute, ensure that the mangled name is the same whether -fobjc-arc is used or not. Since "ns_consumed" attribute is generally used to inform ARC that a function/method does sink the reference, it mean it is usually implemented in a compilation unit compiled without -fobjc-arc but used form a compilation unit compiled with it. Originally found while trying to use "ns_consumed" attribute in an Objective-C++ file in Chromium (http://crbug.com/599980) where it caused a linker error. Regression introduced by revision 262278 (previously the attribute was incorrectly not part of the mangled name). Patch from Sylvain Defresne <sdefresne@chromium.org>! http://reviews.llvm.org/D20113 llvm-svn: 270702
-
Benjamin Kramer authored
This works by accident because we pass '-I.' llvm-svn: 270701
-
Haojian Wu authored
Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20581 llvm-svn: 270700
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D20523 llvm-svn: 270699
-
Teresa Johnson authored
Move the now index-based ODR resolution and internalization routines out of ThinLTOCodeGenerator.cpp and into either LTO.cpp (index-based analysis) or FunctionImport.cpp (index-driven optimizations). This is to enable usage by other linkers. llvm-svn: 270698
-
Teresa Johnson authored
After r270617 I am getting an error when building: projects/compiler-rt/lib/profile/InstrProfilingFile.c:33:36: error: missing field 'PidChars' initializer [-Werror,-Wmissing-field-initializers] lprofFilename lprofCurFilename = {0}; ^ Fix the aggregate initializer. llvm-svn: 270697
-
Eric Liu authored
[include-fixer] moved STLPostfixMap into findAllSymbols library and make it a static variable in function. Summary: [include-fixer] moved STLPostfixMap into findAllSymbols library and make it a static variable in function. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20619 llvm-svn: 270696
-
Oleg Ranevskyy authored
Summary: **Description** This makes `WidenIV::widenIVUse` (IndVarSimplify.cpp) fail to widen narrow IV uses in some cases. The latter affects IndVarSimplify which may not eliminate narrow IV's when there actually exists such a possibility, thereby producing ineffective code. When `WidenIV::widenIVUse` gets a NarrowUse such as `{(-2 + %inc.lcssa),+,1}<nsw><%for.body3>`, it first tries to get a wide recurrence for it via the `getWideRecurrence` call. `getWideRecurrence` returns recurrence like this: `{(sext i32 (-2 + %inc.lcssa) to i64),+,1}<nsw><%for.body3>`. Then a wide use operation is generated by `cloneIVUser`. The generated wide use is evaluated to `{(-2 + (sext i32 %inc.lcssa to i64))<nsw>,+,1}<nsw><%for.body3>`, which is different from the `getWideRecurrence` result. `cloneIVUser` sees the difference and returns nullptr. This patch also fixes the broken LLVM tests by adding missing <nsw> entries introduced by the correction. **Minimal reproducer:** ``` int foo(int a, int b, int c); int baz(); void bar() { int arr[20]; int i = 0; for (i = 0; i < 4; ++i) arr[i] = baz(); for (; i < 20; ++i) arr[i] = foo(arr[i - 4], arr[i - 3], arr[i - 2]); } ``` **Clang command line:** ``` clang++ -mllvm -debug -S -emit-llvm -O3 --target=aarch64-linux-elf test.cpp -o test.ir ``` **Expected result:** The ` -mllvm -debug` log shows that all the IV's for the second `for` loop have been eliminated. Reviewers: sanjoy Subscribers: atrick, asl, aemerson, mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D20058 llvm-svn: 270695
-
Andrey Churbanov authored
llvm-svn: 270694
-
Alexey Bataev authored
llvm-svn: 270693
-
Asiri Rathnayake authored
Currently libunwind is built to support cross-unwinding [1] by default, which requires the buffers unw_context_t and unw_cursor_t to be large enough to hold the vritual register set (VRS) of any supported architecture. This is not desirable for some platforms where the stack usage of the unwinder needs to be kept to a minimum (e.g. bare-metal targets). The current patch introduces a native-only (-DLIBUNWIND_ENABLE_CROSS_UNWINDING=OFF) unwinder variant that adopts strict sizes for the buffers unw_context_t and unw_cursor_t depending on the target architecture. [1] http://www.nongnu.org/libunwind/man/libunwind(3).html#section_4 Change-Id: I380fff9a56c16a0fc520e3b1d8454a34b4a48373 llvm-svn: 270692
-
Renato Golin authored
This reverts commit r270688 and r270689. The issue is not a random order, but a different order for some targets and others (prob. Linux vs Darwin). Reverting until we have a better fix. llvm-svn: 270691
-
Alexey Bataev authored
OpenMP 4.5 adds support for doacross loop synchronization. Patch implements codegen for this construct. llvm-svn: 270690
-
Renato Golin authored
llvm-svn: 270689
-
Renato Golin authored
Using AArch64TargetParser in clang to avoid repetitive string parsing. Use TargetParser to do ARCH/CPU/ArchExt parsing instead of local implementation. Patch by Jojo Ma. llvm-svn: 270688
-
Renato Golin authored
There's already a ARMTargetParser,now adding a similar one for aarch64. so we can use it to do ARCH/CPU/FPU parsing in clang and llvm, instead of string comparison. Patch by Jojo Ma. llvm-svn: 270687
-
Denis Zobnin authored
If we have some function with dllimport attribute and then we have the function definition in the same module but without dllimport attribute we should add dllexport attribute to this function definition. The same should be done for variables. Example: struct __declspec(dllimport) C3 { ~C3(); }; C3::~C3() {;} // we should export this definition. Patch by Andrew V. Tischenko Differential revision: http://reviews.llvm.org/D18953 llvm-svn: 270686
-
Simon Pilgrim authored
llvm-svn: 270685
-
Pavel Labath authored
Reviewers: ovyalov, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D20570 llvm-svn: 270684
-
Simon Pilgrim authored
llvm-svn: 270683
-
Benjamin Kramer authored
polo llvm-svn: 270682
-
Simon Pilgrim authored
Also fixed name of _mm_store1_pd test llvm-svn: 270681
-
Simon Pilgrim authored
llvm-svn: 270680
-
Simon Pilgrim authored
llvm-svn: 270679
-
Simon Pilgrim authored
Followup to D20528 clang patch, this removes the (V)CVTDQ2PD(Y) and (V)CVTPS2PD(Y) llvm intrinsics and auto-upgrades to sitofp/fpext instead. Differential Revision: http://reviews.llvm.org/D20568 llvm-svn: 270678
-
Craig Topper authored
llvm-svn: 270677
-
Gerolf Hoflehner authored
llvm-svn: 270674
-
David Majnemer authored
A volatile load has side effects beyond what callers expect readonly to signify. For example, it is not safe to reorder two function calls which each perform a volatile load to the same memory location. llvm-svn: 270671
-
Gerolf Hoflehner authored
llvm-svn: 270670
-
Zachary Turner authored
We know at least know the meaning of every stream of the PDB file. Yay! llvm-svn: 270669
-
Saleem Abdulrasool authored
Revert it until we can figure out the endianness issue. llvm-svn: 270667
-
Bob Wilson authored
llvm-svn: 270666
-
Bob Wilson authored
Revision r211132 was supposed to disable -Warc-repeated-use-of-weak for Objective-C properties marked with the IBOutlet attribute. Those properties are supposed to be weak but they are only accessed from the main thread so there is no risk of asynchronous updates setting them to nil. That combination makes -Warc-repeated-use-of-weak very noisy. The previous change only handled one kind of access to weak IBOutlet properties. Instead of trying to add checks for all the different kinds of property accesses, this patch removes the previous special case check and adds a check at the point where the diagnostic is reported. rdar://21366461 llvm-svn: 270665
-
Craig Topper authored
[X86] Update test cases to make sure storeu builtins use the storeu instrinsics. We were previously matching on other stores in the IR from this being an -O0 test. We should probably look into making the storeu builtins just emit a normal store with an alignment of 1. llvm-svn: 270664
-
Saleem Abdulrasool authored
Ensure that the unused fields are explicitly stated when defining the types. Add some compile time assertions about the size requirements for the structure types. llvm-svn: 270663
-
Jason Molenda authored
ivar and this header is needed for it to compile on linux, judging by the build bots. llvm-svn: 270662
-
Zachary Turner authored
llvm-svn: 270661
-
Rui Ueyama authored
Thanks to Sean for pointing it out. llvm-svn: 270660
-