summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU: Fix use-after-freesNicolai Haehnle2016-10-142-15/+16
| | | | | | | | | | Reviewers: arsenm, tstellarAMD Subscribers: kzhuravl, wdng, yaxunl, tony-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D25312 llvm-svn: 284215
* XFAIL aligned allocation tests for older Clang versionsEric Fiselier2016-10-149-18/+32
| | | | llvm-svn: 284214
* [x86][ms-inline-asm] use of "jmp short" in asm is not supportedMichael Zuckerman2016-10-141-0/+9
| | | | | | | | | | Test linked to: https://reviews.llvm.org/D24957 Committing in the name of Ziv Izhar: After check-all and LGTM . Differential Revision: https://reviews.llvm.org/D24958 llvm-svn: 284213
* [clang-tidy] Fix readability-braces-around-statements false positiveMarek Kurdej2016-10-143-18/+33
| | | | | | | | | | | | | | | | | Summary: This fixes a false-positive e.g. when string literals are returned from if statement. This patch includes as well a small fix to includes and renames of the test suite that collided with the name of the check. Reviewers: alexfh, hokein Subscribers: hokein Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D25558 llvm-svn: 284212
* [x86][ms-inline-asm] use of "jmp short" in asm is not supportedMichael Zuckerman2016-10-141-0/+14
| | | | | | | | | | | | | | | | | | Committing in the name of Ziv Izhar: After check-all and LGTM . The following patch is for compatability with Microsoft. Microsoft ignores the keyword "short" when used after a jmp, for example: __asm { jmp short label label: } A test for that patch will be added in another patch, since it's located in clang's codegen tests. Link will be added shortly. link to test: https://reviews.llvm.org/D24958 Differential Revision: https://reviews.llvm.org/D24957 llvm-svn: 284211
* XFAIL aligned allocation test failures with UBSANEric Fiselier2016-10-144-9/+10
| | | | llvm-svn: 284210
* Add void_t and invoke feature test macrosEric Fiselier2016-10-144-0/+79
| | | | llvm-svn: 284209
* Update OS X ABI listEric Fiselier2016-10-141-0/+11
| | | | llvm-svn: 284208
* Correct ABI changelog revision numberEric Fiselier2016-10-141-1/+1
| | | | llvm-svn: 284207
* Implement P0035R4 -- Add C++17 aligned allocation functionsEric Fiselier2016-10-1417-22/+1135
| | | | | | | | | | | | | | | | Summary: This patch implements the library side of P0035R4. The implementation is thanks to @rsmith. In addition to the C++17 implementation, the library implementation can be explicitly turned on using `-faligned-allocation` in all dialects. Reviewers: mclow.lists, rsmith Subscribers: rsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D25591 llvm-svn: 284206
* Cleanup LIT testing docEric Fiselier2016-10-141-12/+14
| | | | llvm-svn: 284205
* [DAGCombiner] Teach createBuildVecShuffle to handle cases where input ↵Craig Topper2016-10-143-12/+16
| | | | | | | | vectors are less than half of the output vector size. This will be needed by a future commit to support sign/zero extending from v8i8 to v8i64 which requires a sign/zero_extend_vector_inreg to be created which requires v8i8 to be concatenated upto v64i8 and goes through this code. llvm-svn: 284204
* In preparation for removing getNameWithPrefix off of TargetMachine,Eric Christopher2016-10-142-8/+9
| | | | | | | sink the current behavior into the callers and sink TargetMachine::getNameWithPrefix into TargetMachine::getSymbol. llvm-svn: 284203
* Tidy the calls to getCurrentSection().first -> getCurrentSectionOnly to helpEric Christopher2016-10-1411-30/+29
| | | | | | readability a bit. llvm-svn: 284202
* Tidy up example of getting the pointer size.Eric Christopher2016-10-141-1/+1
| | | | llvm-svn: 284201
* Remove two ABI symbols added after the 3.9 releaseEric Fiselier2016-10-142-2/+1
| | | | llvm-svn: 284200
* Add ABI changelog entry for <any>Eric Fiselier2016-10-141-0/+10
| | | | llvm-svn: 284199
* Sort ABI lists by name so that changes don't generate big diffsEric Fiselier2016-10-145-5192/+5192
| | | | llvm-svn: 284198
* [ELF/AMDGPU]: Add support for new relocationsKonstantin Zhuravlyov2016-10-142-19/+71
| | | | | | Differential Revision: https://reviews.llvm.org/D25563 llvm-svn: 284197
* [AMDGPU] Emit 32-bit lo/hi got and pc relative variant kinds for external ↵Konstantin Zhuravlyov2016-10-148-44/+104
| | | | | | | | and global address space variables Differential Revision: https://reviews.llvm.org/D25562 llvm-svn: 284196
* [AMDGPU] Add 32-bit lo/hi got and pc relative variant kinds and emit ↵Konstantin Zhuravlyov2016-10-144-3/+36
| | | | | | | | appropriate relocations Differential Revision: https://reviews.llvm.org/D25548 llvm-svn: 284195
* Revert r284193 - it is not correct on OS XEric Fiselier2016-10-142-25/+20
| | | | llvm-svn: 284194
* Re-export two previously exported std::string functions.Eric Fiselier2016-10-142-20/+25
| | | | | | | These functions were removed from the dylib sometime between the 3.9 release and now. This patch manually exports them to re-gain ABI compatibility. llvm-svn: 284193
* Add ABI list for 3.9 linuxEric Fiselier2016-10-141-0/+2010
| | | | llvm-svn: 284192
* [Support/ELF/AMDGPU] Add 32-bit lo/hi got and pc relative relocationsKonstantin Zhuravlyov2016-10-143-40/+68
| | | | | | | | | | | | | | Added relocation names: - R_AMDGPU_GOTPCREL32_LO - R_AMDGPU_GOTPCREL32_HI - R_AMDGPU_REL32_LO - R_AMDGPU_REL32_HI AMDGPU isa only supports 32-bit immediates. In order to access 64-bit address we need to generate 32-bit lo/hi relocations, and do the right math (separate patch). Currently we only generate one 32 bit relocation for lower bits for each access, losing higher bits. Hence we need relocations listed above. Differential Revision: https://reviews.llvm.org/D25546 llvm-svn: 284191
* Add `llvm::` in clEnumVal macro (NFC)Mehdi Amini2016-10-141-2/+2
| | | | | | This allows to use llvm:cl::opt without `using namespace llvm;` llvm-svn: 284190
* Add 3.9 symbol list for OS XEric Fiselier2016-10-141-0/+2448
| | | | llvm-svn: 284189
* Fix CMake configuration error and add ABI lists for OS X.Eric Fiselier2016-10-142-1/+553
| | | | | | | | | | | | The primary reason for this patch is to add the OS X ABI lists for 3.9 and ToT. However while working on that I discovered that we incorrectly exported the libc++abi symbols. Previously we had chosen the wrong CMake configuration path and that caused us to re-export the c++abi binary instead of using the symbol lists. llvm-svn: 284188
* Fix bogus assert breaking modules self-host.Richard Smith2016-10-141-4/+6
| | | | llvm-svn: 284187
* Add OS X abi listEric Fiselier2016-10-141-0/+1907
| | | | llvm-svn: 284186
* Add ABI Changelog and current symbol list for LinuxEric Fiselier2016-10-143-0/+2058
| | | | llvm-svn: 284185
* Use SubstInitializer instead of SubstExpr when instantiating a defaultRichard Smith2016-10-142-2/+10
| | | | | | argument, in order to correctly instantiate the initializer. llvm-svn: 284184
* This test passes on i386 now.Jim Ingham2016-10-141-4/+0
| | | | llvm-svn: 284183
* This test is passing on i386 now.Jim Ingham2016-10-141-2/+0
| | | | llvm-svn: 284182
* Timer: Fix doxygen comments, use member initializer; NFCMatthias Braun2016-10-142-58/+51
| | | | llvm-svn: 284181
* Add interface for querying physical hardware concurrencyTeresa Johnson2016-10-144-0/+38
| | | | | | | | | | | | | | | | | | | | Summary: This will be used by ThinLTO to set the amount of backend parallelism, which performs better when restricted to the number of physical cores (on X86 at least, where getHostNumPhysicalCores is currently defined). If not available this falls back to thread::hardware_concurrency. Note I didn't add to the thread class since that is a typedef to std::thread where available. Reviewers: mehdi_amini Subscribers: beanz, llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D25585 llvm-svn: 284180
* remove warnings from google-benchmarks in libcxxSebastian Pop2016-10-142-2/+3
| | | | | | | | Differential Revision: https://reviews.llvm.org/D25522 Patch written by Aditya Kumar. llvm-svn: 284179
* [compiler-rt][XRay] Support tail call sledsDean Michael Berris2016-10-135-4/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change depends on D23986 which adds tail call-specific sleds. For now we treat them first as normal exits, and in the future leave room for implementing this as a different kind of log entry. The reason for deferring the change is so that we can keep the naive logging implementation more accurate without additional complexity for reading the log. The accuracy is gained in effectively interpreting call stacks like: A() B() C() Which when tail-call merged will end up not having any exit entries for A() nor B(), but effectively in turn can be reasoned about as: A() B() C() Although we lose the fact that A() had called B() then had called C() with the naive approach, a later iteration that adds the explicit tail call entries would be a change in the log format and thus necessitate a version change for the header. We can do this later to have a chance at releasing some tools (in D21987) that are able to handle the naive log format, then support higher version numbers of the log format too. Reviewers: echristo, kcc, rSerge, majnemer Subscribers: mehdi_amini, llvm-commits, dberris Differential Revision: https://reviews.llvm.org/D23988 llvm-svn: 284178
* Improve comments.Rui Ueyama2016-10-131-4/+11
| | | | llvm-svn: 284177
* Reinstate r281429, reverted in r281452, with a fix for its mishandling ofRichard Smith2016-10-1313-23/+127
| | | | | | | | | compiles without -fmodules-local-submodule-visibility. Original commit message: [modules] When merging one definition into another, propagate the list of re-exporting modules from the discarded definition to the retained definition. llvm-svn: 284176
* CodeGen: use MSVC division on windows itaniumSaleem Abdulrasool2016-10-132-1/+40
| | | | | | | Windows itanium is identical to MSVC when dealing with everything but C++. Lower the math routines into msvcrt rather than compiler-rt. llvm-svn: 284175
* Disable swiftcall test on windows: More brutal way to appease windows botsArnold Schwaighofer2016-10-131-0/+3
| | | | | | | | | | | The backtrace on the bot does not give me any indication what is wrong. The test case interestingly passes in stage2 of the build. I don't have a way of debugging this. Disable the test on windows and hope if there is truly a bug in the code that was causing we will eventually run into this on other platforms. llvm-svn: 284174
* CodeGen: adjust floating point operations in Windows itaniumSaleem Abdulrasool2016-10-132-1/+94
| | | | | | | Windows itanium is equivalent to MSVC except in C++ mode. Ensure that the promote the 32-bit floating point operations to their 64-bit equivalences. llvm-svn: 284173
* Add 64-bit MS _Interlocked functions as builtins againAlbert Gutowski2016-10-135-164/+259
| | | | | | | | | | | | Summary: Previously global 64-bit versions of _Interlocked functions broke buildbots on i386, so now I'm adding them as builtins for x86-64 and ARM only (should they be also on AArch64? I had problems with testing it for AArch64, so I left it) Reviewers: hans, majnemer, mstorsjo, rnk Subscribers: cfe-commits, aemerson Differential Revision: https://reviews.llvm.org/D25576 llvm-svn: 284172
* Make lsan complain loudly when running under ptraceKostya Serebryany2016-10-133-1/+19
| | | | | | | | | | | | | | | | | | Summary: LeakSanitizer does not work with ptrace but currently it will print warnings (only under verbosity=1) and then proceed to print tons of false reports. This patch makes lsan fail hard under ptrace with a verbose message. https://github.com/google/sanitizers/issues/728 Reviewers: eugenis, vitalybuka, aizatsky Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D25538 llvm-svn: 284171
* [DAG] hoist DL(N) and fix formatting; NFCSanjay Patel2016-10-131-24/+31
| | | | llvm-svn: 284170
* [libFuzzer] more detailed message for disabled leak detectionKostya Serebryany2016-10-131-2/+4
| | | | llvm-svn: 284169
* ELF: Override DSO definitions when creating __start_* and __stop_* symbols.Peter Collingbourne2016-10-133-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously we would fail to synthesise a __start_ or __stop_ symbol if there existed a definition in a DSO. Instead, we would try to link against the DSO definition. This became possible after D23552 when linking against lld-produced DSOs but could in principle also occur when linking against DSOs produced by other linkers. Not only does it seem more likely that a user would expect the resolved definition to be local to the executable, but if a __start_ or __stop_ symbol was synthesised by the linker, it is effectively impossible to link against correctly from a non-PIC executable in a read-only section. Neither a PLT nor a copy relocation would give us the right semantics here. The only way the link could succeed is if the executable provided its own synthetic definition of the symbol. The fix is to also synthesise the definition if the only definition comes from a DSO. Since this is what the addOptionalSynthetic function does, switch to using that function. Fixes PR30680. Differential Revision: https://reviews.llvm.org/D25544 llvm-svn: 284168
* fix _BitScan intrinsics missing header warnings; fix some line endingsAlbert Gutowski2016-10-134-90/+90
| | | | llvm-svn: 284167
* [analyzer] Remove superquadratic behaviour from DataflowWorklistAlexander Shaposhnikov2016-10-131-18/+9
| | | | | | | | | | | | | | | | | The class DataflowWorklist internally maintains a sorted list of pointers to CFGBlock and the method enqueuePredecessors has to call sortWorklist to maintain the invariant. The implementation based on vector + sort works well for small sizes but gets infeasible for relatively large sizes. In particular the issue takes place for some cryptographic libraries which use code generation. The diff replaces vector + sort with priority queue. For one of the implementations of AES this patch reduces the time for analysis from 204 seconds to 8 seconds. Test plan: make -j8 check-clang Differential revision: https://reviews.llvm.org/D25503 llvm-svn: 284166
OpenPOWER on IntegriCloud