- May 24, 2017
-
-
Rafael Espindola authored
Once the dummy linker script is created, we want it to be used for everything to avoid having two redundant representations that can get out of sync. We were already clearing OutputSections. With this patch we clear the Sections vector of every OutputSection. llvm-svn: 303703
-
Rafael Espindola authored
By the time we get to linker scripts, all special InputSectionBase should have been combined into synthetic sections, which are a type of InputSection. The net result is that we can use InputSection in a few places that were using InputSectionBase. llvm-svn: 303702
-
George Karpenkov authored
llvm-svn: 303701
-
Davide Italiano authored
Fixes PR33114. Differential Revision: https://reviews.llvm.org/D33420 llvm-svn: 303700
-
Richard Smith authored
being visible with its owning module if we're not tracking owning modules for local declarations. This avoids the possibility of a declaration being (meaninglessly) marked as hidden with no owning module, which would otherwise lead to violated AST invariants (checked by the added assertion). llvm-svn: 303699
-
- May 23, 2017
-
-
George Karpenkov authored
Coverage instrumentation has an optimization not to instrument extra blocks, if the pass is already "accounted for" by a successor/predecessor basic block. However (https://github.com/google/sanitizers/issues/783) this reasoning may become circular, which stops valid paths from having coverage. In the worst case this can cause fuzzing to stop working entirely. This change simplifies logic to something which trivially can not have such circular reasoning, as losing valid paths does not seem like a good trade-off for a ~15% decrease in the # of instrumented basic blocks. llvm-svn: 303698
-
Tim Northover authored
Revert LLVM changes for "Sema: allow imaginary constants via GNU extension if UDL overloads not present." The changes accidentally crept into a Clang commit I was making. llvm-svn: 303697
-
Rui Ueyama authored
The error message that git-llvm script prints out when svn is missing is very cryptic. I spent a fair amount of time to find what was wrong with my environment. It looks like many newcomers also exprienced a hard time to submit their first patches due to this error. This patch adds a more user-friendly error message. Differential Revision: https://reviews.llvm.org/D33458 llvm-svn: 303696
-
Vadzim Dambrouski authored
Also add more processors to make -mcpu option behave similar to gcc. Differential Revision: https://reviews.llvm.org/D33335 llvm-svn: 303695
-
Tim Northover authored
C++14 added user-defined literal support for complex numbers so that you can write something like "complex<double> val = 2i". However, there is an existing GNU extension supporting this syntax and interpreting the result as a _Complex type. This changes parsing so that such literals are interpreted in terms of C++14's operators if an overload is present but otherwise falls back to the original GNU extension. llvm-svn: 303694
-
Reid Kleckner authored
llvm-svn: 303693
-
Francis Visoiu Mistrih authored
This is fixing a mistake from r303690. Differential Revision: https://reviews.llvm.org/D33303 llvm-svn: 303692
-
Simon Pilgrim authored
This fixes 17 of the 41 -verify-machineinstrs test failures identified in PR33045 Differential Revision: https://reviews.llvm.org/D33451 llvm-svn: 303691
-
Francis Visoiu Mistrih authored
llvm-svn: 303690
-
Peter Collingbourne authored
If the compiler driver passes --build-id and the user uses -Wl to pass --build-id= then the user's flag should take precedence. Differential Revision: https://reviews.llvm.org/D33461 llvm-svn: 303689
-
Benjamin Kramer authored
Found by msan! llvm-svn: 303686
-
Tom Stellard authored
With the http url, the script fails with: Connection lost/failed: 411 Client Error: Length Required llvm-svn: 303685
-
Changpeng Fang authored
AMDGPU/SI: Move the local memory usage related checking after calling convention checking in PromoteAlloca Summary: Promoting Alloca to Vector and Promoting Alloca to LDS are two independent handling of Alloca and should not affect each other. As a result, we should not give up promoting to vector if there is not enough LDS. This patch factors out the local memory usage related checking out and replace it after the calling convention checking. Reviewer: arsenm Differential Revision: http://reviews.llvm.org/D33139 llvm-svn: 303684
-
Daniel Sanders authored
This should fix lld-x86_64-darwin13 llvm-svn: 303683
-
Geoff Berry authored
llvm-svn: 303682
-
Stanislav Mekhanoshin authored
Perform DAG combine: and (srl x, c), mask => shl (bfe x, nb + c, mask >> nb), nb Where nb is a number of trailing zeroes in mask. It replaces two instructions with two and BFE is generally a more expensive one. However this is only done if we are selecting a byte or word at an aligned boundary which results in a proper SDWA operand pattern. It is only done if SDWA is supported. TODO: improve SDWA pass to actually convert this pattern. It is not done now because we have an immediate in the instruction, which has be moved into a VGPR. Differential Revision: https://reviews.llvm.org/D33455 llvm-svn: 303681
-
Geoff Berry authored
llvm-svn: 303680
-
Oleg Ranevskyy authored
Summary: A temporary workaround for PR32780 - rematerialized instructions accessing the same promoted global through different constant pool entries. The patch turns off the globals promotion optimization leaving all its code in place, so that it can be easily turned on once PR32780 is fixed. Since this is a miscompilation issue causing generation of misbehaving code, and the problem is very subtle, the patch might be valuable enough to get into 4.0.1. Reviewers: efriedma, jmolloy Reviewed By: efriedma Subscribers: aemerson, javed.absar, llvm-commits, rengolin, asl, tstellar Differential Revision: https://reviews.llvm.org/D33446 llvm-svn: 303679
-
Daniel Sanders authored
Summary: It's rare but a small number of patterns use IntInit's at the root of the match. On X86, one such rule is enabled by the OptForSize predicate and causes the compiler to use the smaller: %0 = MOV32r1 instead of the usual: %0 = MOV32ri 1 This patch adds support for matching IntInit's at the root and uses this as a test case for the optsize attribute that was implemented in r301750 Reviewers: qcolombet, ab, t.p.northover, rovka, kristof.beyls, aditya_nandakumar Reviewed By: qcolombet Subscribers: igorb, llvm-commits Differential Revision: https://reviews.llvm.org/D32791 llvm-svn: 303678
-
Stephane Sezer authored
Summary: I didn't change all instances of i to I in this loop. I am a bad person and should feel bad. :( Reviewers: sas Differential Revision: https://reviews.llvm.org/D33456 Change by Alex Langford <apl@fb.com> llvm-svn: 303677
-
Zachary Turner authored
When writing field list records, we would construct a temporary type serializer that shared a bump ptr allocator with the rest of the application, so anything allocated from here would live forever. Furthermore, this temporary serializer had all the properties of a full blown serializer including record hashing and de-duplication. These features are required when you're merging multiple type streams into each other, because different streams may contain identical records, but records from the same type stream will never collide with each other. So all of this hashing was unnecessary. To solve this, two fixes are made: 1) The temporary serializer keeps its own bump ptr allocator instead of sharing a global one. When it's finished, all of its memory is freed. 2) Instead of using the same temporary serializer for the life of an entire type stream, we use it only for the life of a single field list record and delete it when the field list record is completed. This way the hash table will not grow as other records from the same type stream get inserted. Further improvements could eliminate hashing entirely from this codepath. This reduces the link time by 85% in my test, from 1 minute to 9 seconds. llvm-svn: 303676
-
Marshall Clow authored
llvm-svn: 303675
-
Stephane Sezer authored
LLVM::AttributeList recently had getNumSlots() removed, which broke the build. This fixes the build using functions introduced in the update to LLVM::AttributeList. Change by Alex Langford <apl@fb.com> llvm-svn: 303674
-
Nirav Dave authored
llvm-svn: 303673
-
Yuka Takahashi authored
llvm-svn: 303672
-
Craig Topper authored
[InstSimplify] Add more tests for undef inputs and multiplying by 0 for the add/sub/mul with overflow intrinsics. NFC llvm-svn: 303671
-
Yuka Takahashi authored
Summary: This is a first patch for GSoC project, bash-completion for clang. To use this on bash, please run `source clang/utils/bash-autocomplete.sh`. bash-autocomplete.sh is code for bash-completion. Simple flag completion and path completion is available in this patch. Reviewers: teemperor, v.g.vassilev, ruiu, Bigcheese, efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33237 llvm-svn: 303670
-
David Blaikie authored
llvm-svn: 303669
-
Nirav Dave authored
Propagate canMergeStoresTo checks to missing cases in StoreMerge. llvm-svn: 303668
-
Reid Kleckner authored
llvm-svn: 303667
-
David Blaikie authored
llvm-svn: 303666
-
Reid Kleckner authored
Summary: First, StringMap uses llvm::HashString, which is only good for short identifiers and really bad for large blobs of binary data like type records. Moving to `DenseMap<StringRef, TypeIndex>` with some tricks for memory allocation fixes that. Unfortunately, that didn't buy very much performance. Profiling showed that we spend a long time during DenseMap growth rehashing existing entries. Also, in general, DenseMap is faster when the keys are small. This change takes that to the logical conclusion by introducing a small wrapper value type around a pointer to key data. The key data contains a precomputed hash, the original record data (pointer and size), and the type index, which is the "value" of our original map. This reduces the time to produce llvm-as.exe and llvm-as.pdb from ~15s on my machine to 3.5s, which is about a 4x improvement. Reviewers: zturner, inglorion, ruiu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33428 llvm-svn: 303665
-
Craig Topper authored
llvm-svn: 303664
-
Sanjay Patel authored
llvm-svn: 303663
-
Adam Nemet authored
llvm-svn: 303662
-