summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* ELF: Implement __attribute__((init_priority(N)) support.Rui Ueyama2016-02-104-0/+83
| | | | llvm-svn: 260460
* [llvm-nm] Prefer range-based loop over explicit iterator.Davide Italiano2016-02-101-3/+2
| | | | llvm-svn: 260459
* Add a new insert_as() method to DenseMap and use it for ConstantUniqueMapMehdi Amini2016-02-102-23/+61
| | | | | | | | | | | | | | | | | | | | Summary: Just like the existing find_as() method, the new insert_as() accepts an extra parameter which is used as a key to find the bucket in the map. When creating a Constant, we want to check the map before actually creating the object. In this case we have to perform two queries to the map, and this extra parameter can save recomputing the hash value for the second query. Reviewers: dexonsmith, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16268 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 260458
* [CMake] Add a macro definition to detect if we are building GlobalISel:Quentin Colombet2016-02-101-0/+3
| | | | | | LLVM_BUILD_GLOBAL_ISEL llvm-svn: 260457
* [GlobalISel] More detailed skeleton for the IRTranslator.Quentin Colombet2016-02-102-16/+43
| | | | llvm-svn: 260456
* Bitcode reader: replace DecodeChar6() with a lookup table (NFC)Mehdi Amini2016-02-101-6/+2
| | | | | | | | | | | | | Summary: Measured to be more performant when reading bitcode. Reviewers: rafael, dexonsmith Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16285 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 260455
* Simplify handleOperandChangeImpl() removing last argument (NFC)Mehdi Amini2016-02-106-65/+57
| | | | | | | | | | The Use argument was used to compute the operand number for a fast path when replacing only one operand. However we always have to go through all the operands. So the argument number can be recomputed locally anyway. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 260454
* Split the creation of program headers in a few steps.Rafael Espindola2016-02-102-178/+191
| | | | | | | | | | | | | | | | | | | | | | | | IMHO this makes the code easier to read and should help with linker scripts. This is strongly based on D16575. The main differences are: We record a range of sections, not every section in a program header. scanHeaders takes case of deciding what goes in every program header, including PT_GNU_RELRO We create dummy sections for the start of the file With this, program header creation has 3 isolated stages: Map sections to program headers. Assign addresses to *sections* Looking at sections find the address and size of each program header. Thanks to George Rimar for the initial version. llvm-svn: 260453
* Revert 260436. I pretty consistently upper-case the letter I use for theJim Ingham2016-02-101-2/+2
| | | | | | | | | short option as an aid to memory. Like it's w because of the W in throW. That helps me remember. If we are going to take these out we should take them all out. But I kind of like them. llvm-svn: 260452
* Follow up to 260439, Speculative fix to clang buildersPhilip Reames2016-02-101-1/+4
| | | | | | It looks like clang has a couple of test cases which caught the fact LVI was not slightly more precise after 260439. When looking at the failures, it struck me as wasteful to be querying nullness of a constant via LVI, so instead of tweaking the clang tests, let's just stop querying constants from this source. llvm-svn: 260451
* [PGO] Make the number of records for each value site metada adjustableRong Xu2016-02-103-13/+37
| | | | | | | | | | The patch adds a parameter in annotateValueSite() to control the max number of records written to the value profile meta data for each value site. The default is kept as the current value of 3. Differential Revision: http://reviews.llvm.org/D17084 llvm-svn: 260450
* Revert r260388 "[MS ABI] Never reference dllimport'd vtables"Hans Wennborg2016-02-106-21/+12
| | | | | | | This caused the compiler to fail with "invalid linkage type for global declaration" (PR26569). llvm-svn: 260449
* Bail on compilation as soon as a job fails.Justin Lebar2016-02-101-30/+8
| | | | | | | | | | | | | | | | | | | | | | | | Previously we attempted to be smart; if one job failed, we'd run all jobs that didn't depend on the failing job. Problem is, this doesn't work well for e.g. CUDA compilation without -save-temps. In this case, the device-side and host-side Assemble actions (which actually are responsible for preprocess, compile, backend, and assemble, since we're not saving temps) are necessarily distinct. So our clever heuristic doesn't help us, and we repeat every error message once for host and once for each device arch. The main effect of this change, other than fixing CUDA, is that if you pass multiple cc files to one instance of clang and you get a compile error, we'll stop when the first cc1 job fails. Reviewers: tra, echristo Subscribers: jhen, cfe-commits Differential Revision: http://reviews.llvm.org/D16514 llvm-svn: 260448
* APInt: Simplify EqualSlowCaseMatthias Braun2016-02-101-15/+2
| | | | | | | | | | | | | Previously the code used getActiveBits() to determine the highest set bit of each APInt first. However doing so requires the same amount of memory accesses as simply comparing both numbers right away. Removing all the active bit checks leads to simpler code and is faster in my benchmark. Differential Revision: http://reviews.llvm.org/D16620 llvm-svn: 260447
* Fix buildbot failure (hosts without zlib)Xinliang David Li2016-02-102-0/+0
| | | | llvm-svn: 260446
* When importing Objective-C protocols, mark them as having external decls.Sean Callanan2016-02-101-11/+23
| | | | | | | | | | We already do this for Objective-C interfaces, but we never handled protocols because the DWARF didn't represent them. Nowadays, though, we can import them from modules, and we have to mark them properly. <rdar://problem/24193009> llvm-svn: 260445
* ELF: Combine cases that has the same code.Rui Ueyama2016-02-101-3/+1
| | | | llvm-svn: 260444
* Remove changes that snuck in within r260431Eric Fiselier2016-02-101-9/+0
| | | | llvm-svn: 260443
* Restore "[ThinLTO] Use MD5 hash in function index." with fixTeresa Johnson2016-02-1014-104/+167
| | | | | | | | | | | This restores commit r260408, along with a fix for a bot failure. The bot failure was caused by dereferencing a unique_ptr in the same call instruction parameter list where it was passed via std::move. Apparently due to luck this was not exposed when I built the compiler with clang, only with gcc. llvm-svn: 260442
* Fix invalid casts in <functional>.Evgeniy Stepanov2016-02-102-29/+37
| | | | | | | | | | | | | static_cast of a pointer to object before the start of the object's lifetime has undefined behavior. This code triggers CFI warnings. This change replaces C-style casts with reinterpret_cast, which is fine per the standard, add applies an attribute to silence CFI (which barks on reinterpret_cast, too). llvm-svn: 260441
* Fix copy/paste error in TestCModules.Zachary Turner2016-02-101-1/+1
| | | | llvm-svn: 260440
* [LVI] Handle constants defensivelyPhilip Reames2016-02-101-3/+7
| | | | | | | | | | There's nothing preventing callers of LVI from asking for lattice values representing a Constant. In fact, given that several callers are walking back through PHI nodes and trying to simplify predicates, such queries are actually quite common. This is mostly harmless today, but we start volatiling assertions if we add new calls to getBlockValue in otherwise reasonable places. Note that this change is not NFC. Specifically: 1) The result returned through getValueAt will now be more precise. In principle, this could trigger any latent infinite optimization loops in callers, but in practice, we're unlikely to see this. 2) The result returned through getBlockValueAt is potentially weakened for non-constants that were previously queried. With the old code, you had the possibility that a later query might bypass the cache and discover some information the original query did not. I can't find a scenario which actually causes this to happen, but it was in principle possible. On the other hand, this may end up reducing compile time when the same value is queried repeatedly. llvm-svn: 260439
* [WebAssembly] Re-triage list of compilation failures for torture testsDerek Schuff2016-02-101-52/+39
| | | | llvm-svn: 260438
* Use ArrayRef instead of deep copies of CompactUnwindEntries. NFC.Pete Cooper2016-02-101-10/+7
| | | | | | | | | We have a vector of all of the compact unwind entries anyway, and its live as long as we need it to be. So instead of copying from that vector to another, just take references to the range of the original vector we need for each compact unwind page. llvm-svn: 260437
* No reason for these two letters to be uppercaseEnrico Granata2016-02-101-2/+2
| | | | llvm-svn: 260436
* [clang-cl] /Z7 now generates normal debug info, not just line infoReid Kleckner2016-02-102-7/+4
| | | | | | | | | Previously LLVM could not process any debug info we produced, so it didn't make sense to spend time generating it. Now that it has primitive support for local variable info, it does make sense to generate normal debug info. llvm-svn: 260435
* Now that SymbolFileDWARF supports having types in completely separate .pcm ↵Greg Clayton2016-02-1022-33/+84
| | | | | | | | | | | | | | file with "-fmodules -gmodules", each SymbolFileDWARF can reference module DWARF info by looking in other DWARF files. Then if you have 1000 .o files that each reference one or more .pcm files in their debug info, a simple Module::FindTypes(...) call can end up searching the same .pcm file over and over and over. Now all internal FindTypes methods in classes (ModuleList, Module, SymbolFile) now take an extra argument: llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files Each time a SymbolFile::FindTypes() is called, it needs to check the searched_symbol_files list to make sure it hasn't already been asked to find the type and return immediately if it has been checked. This will stop circular dependencies from also crashing LLDB during type queries. This has proven to be an issue when debugging large applications on MacOSX that use DWARF in .o files. <rdar://problem/24581488> llvm-svn: 260434
* Test commit, fixed "clang" to "Clang" in docsMandeep Singh Grang2016-02-101-4/+4
| | | | | | | | | | Reviewers: weimingz Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D17085 llvm-svn: 260433
* [codeview] Describe int local variables using .cv_def_rangeReid Kleckner2016-02-1019-309/+891
| | | | | | | | | | | | | | | | Summary: Refactor common value, scope, and label tracking logic out of DwarfDebug into a common base class called DebugHandlerBase. Update an old LLVM IR test case to avoid an assertion in LexicalScopes. Reviewers: dblaikie, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16931 llvm-svn: 260432
* Recommit r260012 - Cleanup node-type handling in the unordered containers.Eric Fiselier2016-02-1010-72/+559
| | | | | | | | | | | | | | | | | | | | | | | | | | | This time I kept <ext/hash_map> working! This patch is the first in a series of patches that's meant to better support unordered_map. unordered_map has a special "value_type" that differs from pair<const Key, Value>. In order to meet the EmplaceConstructible and CopyInsertable requirements we need to teach __hash_table about this special value_type. This patch creates a "__hash_node_types" traits class that contains all of the typedefs needed by the unordered containers and it's iterators. These typedefs include ones for each node type and node pointer type, as well as special typedefs for "unordered_map"'s value type. As a result of this change all of the unordered containers now all support incomplete types. As a drive-by fix I changed the difference_type in __hash_table to always be ptrdiff_t. There is a corresponding change to size_type but it cannot take affect until an ABI break. This patch will be followed up shortly with fixes for various unordered_map bugs and problems. llvm-svn: 260431
* [llvm-readobj] Option to emit readelf like outputHemant Kulkarni2016-02-107-284/+459
| | | | | | | | | New option --elf-output-style=LLVM or GNU Enables -file-headers in readelf style when elf-output-style=GNU Differential revision: http://reviews.llvm.org/D14128 llvm-svn: 260430
* [WebAssembly] Address comments left over from r260421Derek Schuff2016-02-102-8/+10
| | | | llvm-svn: 260429
* [Coverage] add covmap v2 binary format regression testXinliang David Li2016-02-104-1/+3
| | | | llvm-svn: 260428
* AMDGPU: Release the scavenged offset register during VGPR spillNicolai Haehnle2016-02-102-1/+41
| | | | | | | | | | | | | | | | | | | Summary: This fixes a crash where subsequent spills would be unable to scavenge a register. In particular, it fixes a crash in piglit's spec@glsl-1.50@execution@geometry@max-input-components (the test still has a shader that fails to compile because of too many SGPR spills, but at least it doesn't crash any more). This is a candidate for the release branch. Reviewers: arsenm, tstellarAMD Subscribers: qcolombet, arsenm Differential Revision: http://reviews.llvm.org/D16558 llvm-svn: 260427
* [x86] refactor masked load/store combine logic ; NFCISanjay Patel2016-02-101-27/+36
| | | | llvm-svn: 260426
* Don't assume that there is only one strchr overload in the global namespace;Richard Smith2016-02-101-18/+11
| | | | | | | | that's not true in general. Instead, use a preference order to pick the standard C++ signature 'char*(char*, int)' where possible and fall back to the C signature 'char*(const char*, int)' only when it's unavailable. llvm-svn: 260425
* [ELF][MIPS] Add lazy relocation support for MIPSSimon Atanasyan2016-02-104-22/+234
| | | | | | | | | | | | | | | The patch adds lazy relocation support for MIPS and R_MIPS_26 relocation handing. R_MIPS_26 relocation might require PLT entry creation. In that case it is fully supported by the patch. But if the relocation target is a local symbol we need to use a different expression to calculate the relocation result. This case is not implemented yet because there is no method to get know the kind of relocation target in the `relocateOne` routine. Differential Revision: http://reviews.llvm.org/D16982 llvm-svn: 260424
* Remove skipUnlessListedRemote.Zachary Turner2016-02-101-12/+0
| | | | | | | This was supposed to have been removed but made it back in accidentally. llvm-svn: 260423
* Remove expectedFailureLinux decorator.Zachary Turner2016-02-1029-67/+59
| | | | llvm-svn: 260422
* [WebAssembly] Switch varags calling convention to use a registerDerek Schuff2016-02-105-115/+92
| | | | | | | | | | | | Instead of passing varargs directly on the user stack, allocate a buffer in the caller's stack frame and pass a pointer to it. This simplifies the C ABI (e.g. non-C callers of C functions do not need to use C's user stack if they have their own mechanism) and allows further optimizations in the future (e.g. fewer functions may need to use the stack). Differential Revision: http://reviews.llvm.org/D17048 llvm-svn: 260421
* [analyzer] Windows: launch scan-build from an arbitrary location.Anton Yartsev2016-02-107-0/+7
| | | | | | The following batch files allow to launch scan-build from an arbitrary location if path to clang\tools\scan-build-py\bin is added to %PATH%. llvm-svn: 260420
* [AArch64] Refactor is logic into a helper function. NFC.Chad Rosier2016-02-101-12/+22
| | | | llvm-svn: 260419
* Fix a -Wsign-compare in Support Path unittestsReid Kleckner2016-02-101-1/+1
| | | | llvm-svn: 260418
* Silence MSVC warning about falling off the end of a function after a fully ↵Reid Kleckner2016-02-101-0/+1
| | | | | | covered switch llvm-svn: 260417
* Disable MSVC 2015's warning about zero extending after ~ and othersReid Kleckner2016-02-101-1/+2
| | | | | | | | | Very often in LLVM we have APIs that take a bitwidth and a uint64_t that we pass immediates such as ~0U to. Consider APInt, Constant, and MachineInstrBuilder::addImm. Fixing all uses of these APIs to manually extend their arguments to uint64_t doesn't seem worth it. llvm-svn: 260416
* Fix some Clang-tidy readability-redundant-control-flow warnings; other minor ↵Eugene Zelenko2016-02-1023-280/+190
| | | | | | | | fixes. Differential revision: http://reviews.llvm.org/D17060 llvm-svn: 260414
* Silence some MSVC warnings about zero extending unsigned to void*Reid Kleckner2016-02-101-4/+4
| | | | llvm-svn: 260413
* Revert "[ThinLTO] Use MD5 hash in function index." due to bot failureTeresa Johnson2016-02-1014-168/+104
| | | | | | This reverts commit r260408. Bot failure that I need to investigate. llvm-svn: 260412
* Silence some MSVC false positive warnings about integer zexts and falling ↵Reid Kleckner2016-02-103-2/+3
| | | | | | off the end of a covered switch llvm-svn: 260411
* Enable constexpr on Visual Studio 2015, add support for two equivalent ↵Reid Kleckner2016-02-101-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | attributes Patch by Alexander Riccio This patch enables `constexpr` on Visual Studio 2015 by adding `|| LLVM_MSC_PREREQ(1900)` to the preprocessor `#if` statement. Since VS2013 doesn't support `constexpr`, that's purposely excluded. The `LLVM_CONSTEXPR` macro is used in ~25 places. I also added the MSVC/SAL equivalent of: - `__attribute__((__warn_unused_result__))` as an `LLVM_ATTRIBUTE_UNUSED_RESULT` definition - `__attribute__((returns_nonnull))` as an `LLVM_ATTRIBUTE_RETURNS_NONNULL` definition ...in case anybody ever decides to run `/analyze` on LLVM (probably myself, if anybody) Reviewers: rnk, aaron.ballman Differential Revision: http://reviews.llvm.org/D16751 llvm-svn: 260410
OpenPOWER on IntegriCloud