- Mar 23, 2017
-
-
Vassil Vassilev authored
When a python script is run, by default it creates the bytecode file if the directory is writable, and this ‘pollutes’ source folders. From python's help: -B Don’t write .py[co] files on import. See also PYTHONDONTWRITEBYTECODE. Patch by Pere Mato (D30604)! llvm-svn: 298603
-
Dehao Chen authored
Summary: ThinLTO will annotate the CFG twice. If the branch weight is set by the first annotation, we should not set the branch weight again in the second annotation because the first annotation is more accurate as there is less optimization that could affect debug info accuracy. Reviewers: tejohnson, davidxl Reviewed By: tejohnson Subscribers: mehdi_amini, aprantl, llvm-commits Differential Revision: https://reviews.llvm.org/D31228 llvm-svn: 298602
-
Bruce Mitchener authored
Summary: By manipulating a local variable in the loop, when the loop can be optimized away (due to no non-trivial destructors), this lets it be fully optimized away and we modify the __end_ separately. This results in a substantial improvement in the generated code. Prior to this change, this would be generated (on x86_64): movq (%rdi), %rdx movq 8(%rdi), %rcx cmpq %rdx, %rcx je LBB2_2 leaq -12(%rcx), %rax subq %rdx, %rax movabsq $-6148914691236517205, %rdx ## imm = 0xAAAAAAAAAAAAAAAB mulq %rdx shrq $3, %rdx notq %rdx leaq (%rdx,%rdx,2), %rax leaq (%rcx,%rax,4), %rax movq %rax, 8(%rdi) And after: movq (%rdi), %rax movq %rax, 8(%rdi) This brings this in line with what other implementations do. Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25241 llvm-svn: 298601
-
Marshall Clow authored
Use 'REQUIRES: c++98 || c++03 || c++11 || c++14' instead of the deprecated 'REQUIRES-ANY: c++98, c++03, c++11, c++14' llvm-svn: 298600
-
Zvi Rackover authored
Summary: Cleanup some remnants of code from when the X86FixupBWInsts pass did both forward liveness analysis and backward liveness analysis. Reviewers: MatzeB, myatsina, DavidKreitzer Reviewed By: MatzeB Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31264 llvm-svn: 298599
-
Marshall Clow authored
llvm-svn: 298598
-
Marshall Clow authored
Remove random_shuffle in C++17. Please use shuffle instead. If you have to, you cant get it back by defining _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE before including any libc++ headers. llvm-svn: 298597
-
Strahinja Petrovic authored
This patch fixes emitting of correct variant of DINS instruction. Differential Revision: https://reviews.llvm.org/D30988 llvm-svn: 298596
-
Tobias Grosser authored
This is a regular maintenance update. llvm-svn: 298595
-
Simon Pilgrim authored
Pull out mask elements at the start, allowing us to make the widening pattern matching more readable. llvm-svn: 298594
-
Strahinja Petrovic authored
This patch fixes decoding of size and position for DINSM and DINSU instructions. Differential Revision: https://reviews.llvm.org/D31072 llvm-svn: 298593
-
Simon Pilgrim authored
llvm-svn: 298592
-
Simon Atanasyan authored
These targets are related to MIPS N32 ABI. llvm-svn: 298591
-
Igor Breger authored
llvm-svn: 298590
-
Alex Lorenz authored
rdar://31095315 Differential Revision: https://reviews.llvm.org/D31179 llvm-svn: 298589
-
Alex Lorenz authored
After r297760, __isOSVersionAtLeast in compiler-rt loads the CoreFoundation symbols at runtime. This means that `@available` will always fail when used in a binary without a linked CoreFoundation. This commit forces Clang to emit a reference to a CoreFoundation symbol when `@available` is used to ensure that linking will fail when CoreFoundation isn't linked with the build product. rdar://31039592 Differential Revision: https://reviews.llvm.org/D30977 llvm-svn: 298588
-
Alex Lorenz authored
that became supported after r297019 The commit r297019 expanded the performSelector ObjC method family heuristic to ensure that -Wobjc-unsafe-perform-selector covers all performSelector variations. However, this made the -Warc-performSelector-leaks too noisy, as that warning produces mostly false positives since the selector is unknown. This commit reverts the ObjC method family heuristics introduced in r297019. This ensures that -Warc-performSelector-leaks isn't too noisy. The commit still preserves the coverage of -Wobjc-unsafe-perform-selector. rdar://31124629 llvm-svn: 298587
-
Michael Zuckerman authored
Up until now, vpmovm2 instruction described its destination operand size by the source operand size. This patch adds new pattern for the vpmovm2 instruction. The node describes new expansion of the destination (from {128|256} to 512). Differential Revision: https://reviews.llvm.org/D30654 llvm-svn: 298586
-
Bruce Mitchener authored
Reviewers: lldb-commits Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D31279 llvm-svn: 298585
-
Craig Topper authored
llvm-svn: 298584
-
Craig Topper authored
llvm-svn: 298583
-
Marshall Clow authored
llvm-svn: 298582
-
Michael Park authored
Summary: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480 Reviewers: EricWF Reviewed By: EricWF Differential Revision: https://reviews.llvm.org/D31273 llvm-svn: 298581
-
Marshall Clow authored
llvm-svn: 298580
-
Craig Topper authored
Summary: We currently do a linear scan through all of the Alignments array entries anytime getAlignmentInfo is called. I noticed while profiling compile time on a -O2 opt run that this function can be called quite frequently and was showing about as about 1% of the time in callgrind. This patch puts the Alignments array into a sorted order by type and then by bitwidth. We can then do a binary search. And use the sorted nature to handle the special cases for INTEGER_ALIGN. Some of this is modeled after the sorting/searching we do for pointers already. This reduced the time spent in this routine by about 2/3 in the one compilation I was looking at. We could maybe improve this more by using a DenseMap to cache the results, but just sorting was easy and didn't require extra data structure. And I think it made the integer handling simpler. Reviewers: sanjoy, davide, majnemer, resistor, arsenm, mehdi_amini Reviewed By: arsenm Subscribers: arsenm, llvm-commits Differential Revision: https://reviews.llvm.org/D31232 llvm-svn: 298579
-
Craig Topper authored
llvm-svn: 298578
-
Petr Hosek authored
This requires collectign all symbols referenced in the linker script and adding them to symbol table as undefined symbol. Differential Revision: https://reviews.llvm.org/D31147 llvm-svn: 298577
-
Rui Ueyama authored
I honestly do not understand this part of code as it is too tangled. What I'm trying now is to carefully disentangle it by transforming code without changing meaining to see if I can improve overall readability. llvm-svn: 298576
-
Rui Ueyama authored
llvm-svn: 298575
-
Nikola Smiljanic authored
Patch by Ben Harper. llvm-svn: 298574
-
Marshall Clow authored
Implement P0599: 'noexcept for hash functions'. Fix a couple of hash functions (optional<T> and unique_ptr<T>) which were mistakenly marked as 'noexcept'. Reviewed as https://reviews.llvm.org/D31234 llvm-svn: 298573
-
Davide Italiano authored
llvm-svn: 298572
-
Rui Ueyama authored
llvm-svn: 298571
-
Rui Ueyama authored
llvm-svn: 298570
-
Rui Ueyama authored
Fixes https://bugs.llvm.org/show_bug.cgi?id=32307. Differential Revision: https://reviews.llvm.org/D31255 llvm-svn: 298569
-
Rui Ueyama authored
This is to improve compatibility with GNU Libtool that expect /supported targets:.* elf/ in a message for the -help option. Differential Revision: https://reviews.llvm.org/D31208 llvm-svn: 298568
-
Davide Italiano authored
Patch by Mark Kettenis. llvm-svn: 298567
-
Eric Fiselier authored
llvm-svn: 298566
-
Eric Fiselier authored
Summary: This patch adopts the recent changes that renamed `set_exception(exception_pointer)` to `unhandled_exception()`. Additionally `unhandled_exception()` is now required, and so an error is emitted when exceptions are enabled but the promise type does not provide the member. When exceptions are disabled a warning is emitted instead of an error, The warning notes that the `unhandled_exception()` function is required when exceptions are enabled. Reviewers: rsmith, GorNishanov, aaron.ballman, majnemer Reviewed By: GorNishanov Subscribers: mehdi_amini, cfe-commits Differential Revision: https://reviews.llvm.org/D30859 llvm-svn: 298565
-
Reid Kleckner authored
Summary: This removes the 'remapTypeIndices' method on every TypeRecord class. My original idea was that this would be the beginning of some kind of generic entry point that would enumerate all of the TypeIndices inside of a TypeRecord, so that we could write generic graph algorithms for them without duplicating the knowledge of which fields are type index fields everywhere. This never happened, and nothing else uses this method. I need to change the API to deal with merging into IPI streams, so let's move it into the file that uses it first. Reviewers: zturner, ruiu Reviewed By: zturner, ruiu Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D31267 llvm-svn: 298564
-