summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Update the status of three papers that do not require library changesMarshall Clow2016-10-131-3/+5
| | | | llvm-svn: 284165
* Implement http://wg21.link/p0302r1: Removing Allocator Support in ↵Marshall Clow2016-10-1314-7/+225
| | | | | | std::function. These functions never worked, and as far as I know, no one ever called them. llvm-svn: 284164
* LegalizeDAG: Implement PROMOTE for ISD::BITREVERSETom Stellard2016-10-131-1/+2
| | | | | | | | | | | | | | | Summary: This operation is promoted the same way was ISD::BSWAP. This will prevent a regression in test/Target/AMDGOU/bitreverse.ll when i16 support is implemented. Reviewers: bogner, hfinkel Subscribers: hfinkel, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D25202 llvm-svn: 284163
* Add required targets to tests to (hopefully) appease botsArnold Schwaighofer2016-10-131-0/+2
| | | | llvm-svn: 284162
* [safestack] Reapply r283248 after moving X86-targeted SafeStack tests intoDavid L Kreitzer2016-10-131-7/+6
| | | | | | | | | | | | the X86 subdirectory. Original commit message: Requires a valid TargetMachine to be passed to the SafeStack pass. Patch by Michael LeMay Differential revision: http://reviews.llvm.org/D24896 llvm-svn: 284161
* New llc option pie-copy-relocations to optimize access to extern globals.Sriraman Tallam2016-10-135-5/+129
| | | | | | | | | This option indicates copy relocations support is available from the linker when building as PIE and allows accesses to extern globals to avoid the GOT. Differential Revision: https://reviews.llvm.org/D24849 llvm-svn: 284160
* Add and use isDiscardableGVALinkage function.Justin Lebar2016-10-133-10/+7
| | | | | | | | | | Reviewers: rnk Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25571 llvm-svn: 284159
* [CUDA] Emit deferred diagnostics during Sema rather than during codegen.Justin Lebar2016-10-1312-141/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Emitting deferred diagnostics during codegen was a hack. It did work, but usability was poor, both for us as compiler devs and for users. We don't codegen if there are any sema errors, so for users this meant that they wouldn't see deferred errors if there were any non-deferred errors. For devs, this meant that we had to carefully split up our tests so that when we tested deferred errors, we didn't emit any non-deferred errors. This change moves checking for deferred errors into Sema. See the big comment in SemaCUDA.cpp for an overview of the idea. This checking adds overhead to compilation, because we have to maintain a partial call graph. As a result, this change makes deferred errors a CUDA-only concept (whereas before they were a general concept). If anyone else wants to use this framework for something other than CUDA, we can generalize at that time. This patch makes the minimal set of test changes -- after this lands, I'll go back through and do a cleanup of the tests that we no longer have to split up. Reviewers: rnk Subscribers: cfe-commits, rsmith, tra Differential Revision: https://reviews.llvm.org/D25541 llvm-svn: 284158
OpenPOWER on IntegriCloud