- Mar 22, 2016
-
-
Colin LeMahieu authored
[llvm-objdump] Printing relocations in executable and shared object files. This partially reverts r215844 by removing test objdump-reloc-shared.test which stated GNU objdump doesn't print relocations, it does. In executable and shared object ELF files, relocations in the file contain the final virtual address rather than section offset so this is adjusted to display section offset. Differential revision: http://reviews.llvm.org/D15965 llvm-svn: 263971
-
Richard Smith authored
llvm-svn: 263970
-
Tom Stellard authored
Summary: When control flow is implemented using the exec mask, the compiler will insert branch instructions to skip over the masked section when exec is zero if the section contains more than a certain number of instructions. The previous code would only count instructions in successor blocks, and this patch modifies the code to start counting instructions in all blocks between the start and end of the branch. Reviewers: nhaehnle, arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18282 llvm-svn: 263969
-
Eugene Zelenko authored
Differential revision: http://reviews.llvm.org/D18232 llvm-svn: 263968
-
Jonathan Peyton authored
OMP_critical - time spent in critical section OMP_critical_wait - time spent waiting to enter a critical section llvm-svn: 263967
-
Reid Kleckner authored
In VS 2015, the memset fill parameter is zero extended from one byte instead of being copied wholesale. The issue reproduces with existing tests if you use VS2015. llvm-svn: 263966
-
Chad Rosier authored
llvm-svn: 263965
-
Matt Arsenault authored
These instructions do not have the same negative base address problem that DS instructions do on SI. llvm-svn: 263964
-
Samuel Benzaquen authored
Add names missing from rL263822 and add tests to prevent future omissions. llvm-svn: 263963
-
Peter Collingbourne authored
This introduces a custom lowering for ISD::SETCCE (introduced in r253572) that allows us to emit a short code sequence for 64-bit compares. Before: push {r7, lr} cmp r0, r2 mov.w r0, #0 mov.w r12, #0 it hs movhs r0, #1 cmp r1, r3 it ge movge.w r12, #1 it eq moveq r12, r0 cmp.w r12, #0 bne .LBB1_2 @ BB#1: @ %bb1 bl f pop {r7, pc} .LBB1_2: @ %bb2 bl g pop {r7, pc} After: push {r7, lr} subs r0, r0, r2 sbcs.w r0, r1, r3 bge .LBB1_2 @ BB#1: @ %bb1 bl f pop {r7, pc} .LBB1_2: @ %bb2 bl g pop {r7, pc} Saves around 80KB in Chromium's libchrome.so. Some notes on this patch: - I don't much like the ARMISD::BRCOND and ARMISD::CMOV combines I introduced (nothing else needs them). However, they are necessary in order to avoid poor codegen, and they seem similar to existing combines in other backends (e.g. X86 combines (brcond (cmp (setcc Compare))) to (brcond Compare)). - No support for Thumb-1. This is in principle possible, but we'd need to implement ARMISD::SUBE for Thumb-1. Differential Revision: http://reviews.llvm.org/D15256 llvm-svn: 263962 -
Daniel Jasper authored
The operators | and & in types, as opposed to the bitwise operators, should not have whitespace around them (e.g. `Foo<Bar|Baz>`). Patch by Martin Probst. Thank you. llvm-svn: 263961
-
Manman Ren authored
This commit adds a named argument to AvailabilityAttr, while r263652 adds an optional string argument to __attribute__((deprecated)). This was commited in r263687 and reverted in 263752 due to misaligned access. rdar://20588929 llvm-svn: 263958
-
Renato Golin authored
Patch by Sam Parker. llvm-svn: 263957
-
Renato Golin authored
Adding Cortex-A32 as an available target in the ARM backend. Patch by Sam Parker. llvm-svn: 263956
-
Manman Ren authored
This makes it easy to add more data into Availability. llvm-svn: 263955
-
Jonathan Peyton authored
This change logically separates the stats_flags_e::noTotal bit flag from the stats_flags_e::onlyInMaster and stats_flags_e::noUnits bit flags. If no TOTAL_foo output is wanted for a particular statistic, the flag must be explicitly included in that statistic's flags. Differential Revision: http://reviews.llvm.org/D18198 llvm-svn: 263954
-
Nico Weber authored
/FC affects if diagnostics print with full paths and if __FILE__ expands with a full path. clang-cl does both of these two by default. llvm-svn: 263953
-
Hemant Kulkarni authored
Implements "readelf -sW and readelf -DsW" Differential Revision: http://reviews.llvm.org/D18224 llvm-svn: 263952
-
Lang Hames authored
No functional change, just a little more readable. llvm-svn: 263951
-
Matt Arsenault authored
llvm-svn: 263950
-
Matt Arsenault authored
llvm-svn: 263948
-
Reid Kleckner authored
Summary: The Microsoft compiler emits warning C4229: anachronism used : modifiers on data are ignored for struct {} __cdecl s; but ICU's gendict can generate such (and does when building LibreOffice), so accepting this in clang-cl too would be useful. Reviewers: rnk Patch by Stephan Bergmann Differential Revision: http://reviews.llvm.org/D16628 llvm-svn: 263947 -
Kuba Brecka authored
llvm-svn: 263946
-
- Mar 21, 2016
-
-
Matt Arsenault authored
llvm-svn: 263945
-
Rafael Espindola authored
This reverts commit r263664. The reason we were getting broken files was lld -r, and that has been fixed. llvm-svn: 263944
-
Daniel Jasper authored
This patch adds a regular expression to configure suffixes of an included file to check whether it is the "main" include of the current file. Previously, clang-format has allowed arbitrary suffixes on the formatted file, which is still the case when no IncludeMainRegex is specified. llvm-svn: 263943
-
Chad Rosier authored
llvm-svn: 263942
-
Silviu Baranga authored
Summary: replaceCongruentIVs can break LCSSA when trying to replace IV increments since it tries to replace all uses of a phi node with another phi node while both of the phi nodes are not necessarily in the processed loop. This will cause an assert in IndVars. To fix this, we add a check to make sure that the replacement maintains LCSSA. Reviewers: sanjoy Subscribers: mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D18266 llvm-svn: 263941
-
Jonas Hahnfeld authored
Without this patch a simple '#pragma omp parallel num_threads(1)' leads to ompt_event_parallel_begin: parent_task_id=3, [...], parallel_id=2, [...] ompt_event_parallel_end: parallel_id=2, task_id=4, [...] Differential Revision: http://reviews.llvm.org/D16714 llvm-svn: 263940
-
Kuba Brecka authored
`__tsan_get_report_thread` and others can crash if a stack trace is missing, let's add the missing checks. Differential Revision: http://reviews.llvm.org/D18306 llvm-svn: 263939
-
NAKAMURA Takumi authored
llvm-svn: 263936
-
Silviu Baranga authored
[DAGCombine] Catch the case where extract_vector_elt can cause an any_ext while processing AND SDNodes Summary: extract_vector_elt can cause an implicit any_ext if the types don't match. When processing the following pattern: (and (extract_vector_elt (load ([non_ext|any_ext|zero_ext] V))), c) DAGCombine was ignoring the possible extend, and sometimes removing the AND even though it was required to maintain some of the bits in the result to 0, resulting in a miscompile. This change fixes the issue by limiting the transformation only to cases where the extract_vector_elt doesn't perform the implicit extend. Reviewers: t.p.northover, jmolloy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18247 llvm-svn: 263935
-
NAKAMURA Takumi authored
llvm-svn: 263934
-
George Rimar authored
llvm-svn: 263933
-
Elena Demikhovsky authored
"core-avx" does not exist; I changed to "nehalem" llvm-svn: 263932
-
NAKAMURA Takumi authored
llvm-svn: 263931
-
Faisal Vali authored
llvm-svn: 263922
-
Faisal Vali authored
Implement lambda capture of *this by copy. For e.g.: struct A { int d = 10; auto foo() { return [*this] (auto a) mutable { d+=a; return d; }; } }; auto L = A{}.foo(); // A{}'s lifetime is gone. // Below is still ok, because *this was captured by value. assert(L(10) == 20); assert(L(100) == 120); If the capture was implicit, or [this] (i.e. *this was captured by reference), this code would be otherwise undefined. Implementation Strategy: - amend the parser to accept *this in the lambda introducer - add a new king of capture LCK_StarThis - teach Sema::CheckCXXThisCapture to handle by copy captures of the enclosing object (i.e. *this) - when CheckCXXThisCapture does capture by copy, the corresponding initializer expression for the closure's data member direct-initializes it thus making a copy of '*this'. - in codegen, when assigning to CXXThisValue, if *this was captured by copy, make sure it points to the corresponding field member, and not, unlike when captured by reference, what the field member points to. - mark feature as implemented in svn Much gratitude to Richard Smith for his carefully illuminating reviews! llvm-svn: 263921 -
Nico Weber authored
llvm-svn: 263920
-
David Majnemer authored
Some declarations of memcpy (like glibc's for example) are attributed with notnull which makes it UB for NULL to get passed in, even if the memcpy count is zero. To account for this, guard the memcpy with an appropriate precondition. This should fix the last UBSan bug, exposed by the test suite, in the COFF linker. llvm-svn: 263919
-