summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix bug where one of the cases where we mangle a <bare-unresolved-name> failedRichard Smith2016-10-242-25/+38
| | | | | | | | to emit the <template-args> portion. Refactor so that mangleUnresolvedName actually emits the entire <unresolved-name>, so this mistake is harder to make again. llvm-svn: 285022
* ELF: Simplify handling of *_start/*_end symbols.Peter Collingbourne2016-10-242-21/+3
| | | | | | | | | | | | | | We were previously using the (static) addSynthetic function to create *_start/*_end symbols. This function was doing almost the same thing as addOptionalSynthetic, except that it would also create the symbol in the case where it is unreferenced. Because the symbol has hidden visibility, creating it in that case would have no effect other than adding another entry to the static symbol table. Remove addSynthetic and change callers to use addOptionalSynthetic instead. Differential Revision: https://reviews.llvm.org/D25545 llvm-svn: 285021
* Fix non-portable tests for temp_directory_path(...)Eric Fiselier2016-10-241-8/+11
| | | | llvm-svn: 285020
* Add support for __builtin_os_log_format[_buffer_size]Mehdi Amini2016-10-2415-95/+995
| | | | | | | | | | | | | | | | | This reverts commit r285007 and reapply r284990, with a fix for the opencl test that I broke. Original commit message follows: These new builtins support a mechanism for logging OS events, using a printf-like format string to specify the layout of data in a buffer. The _buffer_size version of the builtin can be used to determine the size of the buffer to allocate to hold the data, and then __builtin_os_log_format can write data into that buffer. This implements format checking to report mismatches between the format string and the data arguments. Most of this code was written by Chris Willmore. Differential Revision: https://reviews.llvm.org/D25888 llvm-svn: 285019
* [pbqp] Delete some dead code, NFC.Vedant Kumar2016-10-244-262/+5
| | | | | | | | | | | | I took the opportunity to replace some copy|move constructors|assignment operators with default implementations. As a follow-up, I plan on threading unique_ptr<T []> through a few areas per David Blaikie's advice. Differential Revision: https://reviews.llvm.org/D24424 llvm-svn: 285018
* [WebAssembly] Fix a broken URL.Dan Gohman2016-10-241-1/+1
| | | | llvm-svn: 285017
* [WebAssembly] Define the `end` opcode value.Dan Gohman2016-10-241-2/+4
| | | | | | | CFGStackify differentiates between END_LOOP and END_BLOCK, but wasm itself doesn't. For now, just use the same opcode for both. llvm-svn: 285016
* Fix mangling of implicit calls to operator-> to only include a single "pt",Richard Smith2016-10-242-1/+11
| | | | | | rather than including an extra one for each level of 'operator->()' invoked. llvm-svn: 285015
* [WebAssembly] Update opcode values according to recent spec changes.Dan Gohman2016-10-246-112/+112
| | | | | | This corresponds to the "0xd" opcode renumbering. llvm-svn: 285014
* scripts: Document existing problems with the symbolizer build script.Peter Collingbourne2016-10-241-0/+6
| | | | | | | | | | Reviewers: eugenis, vitalybuka Subscribers: llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D25846 llvm-svn: 285013
* Add missing include in string_view tests. Patch from Billy ONeil @ microsoftEric Fiselier2016-10-241-0/+1
| | | | llvm-svn: 285012
* Fix shadow warnings in string_view tests. Patch from STL@microsoft.comEric Fiselier2016-10-242-22/+20
| | | | llvm-svn: 285011
* [compiler-rt] moved __asan_schedule_unregister_globals out of anonymous ↵Bob Haarman2016-10-241-2/+1
| | | | | | | | | | | | | | namespace Summary: Newer versions of clang complain that __asan_schedule_unregister_globals is unused. Moving it outside the anonymous namespace gets rid of that warning. Reviewers: rnk, timurrrr Subscribers: kubabrecka, dberris Differential Revision: https://reviews.llvm.org/D25921 llvm-svn: 285010
* [WebAssembly] Add an option to make get_local/set_local explicit.Dan Gohman2016-10-2422-177/+632
| | | | | | | | | | This patch adds a pass, controlled by an option and off by default for now, for making implicit get_local/set_local explicit. This simplifies emitting wasm with MC. Differential Revision: https://reviews.llvm.org/D25836 llvm-svn: 285009
* Merge two if conditions into one. NFCI.Davide Italiano2016-10-241-3/+2
| | | | llvm-svn: 285008
* Revert "Add support for __builtin_os_log_format[_buffer_size]"Mehdi Amini2016-10-2415-994/+95
| | | | | | This reverts commit r284990, two opencl test are broken llvm-svn: 285007
* Target: Change various section classifiers in TargetLoweringObjectFile to ↵Peter Collingbourne2016-10-2425-183/+207
| | | | | | | | | | | | | | | | take a GlobalObject. These functions are about classifying a global which will actually be emitted, so it does not make sense for them to take a GlobalValue which may for example be an alias. Change the Mach-O object writer and the Hexagon, Lanai and MIPS backends to look through aliases before using TargetLoweringObjectFile interfaces. These are functional changes but all appear to be bug fixes. Differential Revision: https://reviews.llvm.org/D25917 llvm-svn: 285006
* [x86] add tests for {-1,0,1} select of constantsSanjay Patel2016-10-241-0/+93
| | | | llvm-svn: 285005
* [asan] relax strstr tests.Tim Northover2016-10-242-2/+2
| | | | | | | | Darwin's implementation of strstr seems to trigger slightly different failure modes from Linux since it calls strncmp. All messages seem about equally useful and correct, so I relaxed the tests so Darwin can pass. llvm-svn: 285004
* [llvm] Remove redundant --check-prefix=CHECK from testsMandeep Singh Grang2016-10-2416-16/+16
| | | | | | | | Reviewers: MatzeB, mcrosier, rengolin Differential Revision: https://reviews.llvm.org/D25894 llvm-svn: 285003
* CodeGen: Do not add a global's address space to the folding set profile.Peter Collingbourne2016-10-241-2/+0
| | | | | | | It is already part of the type (which is part of the global, which is already being added), so there's no need to do it. llvm-svn: 285002
* [clang] Remove redundant --check-prefix=CHECK from testsMandeep Singh Grang2016-10-242-2/+2
| | | | | | | | | | | | Reviewers: mkuper, rengolin, hans Subscribers: cfe-commits Tags: #clang-c Differential Revision: https://reviews.llvm.org/D25893 llvm-svn: 285001
* [analyzer] Use unsigned integers to rely on well-defined overflow semantics.Artem Dergachev2016-10-241-5/+5
| | | | | | Found by the UBSan buildbot. llvm-svn: 285000
* Fix crash if StmtProfile finds a type-dependent member access for which we haveRichard Smith2016-10-242-0/+15
| | | | | | | | | | | resolved the -> to a call to a specific operator-> function. The particular test case added here is actually being mishandled: the implicit member access should not be type-dependent (because it's accessing a non-type-dependent member of the current instantiation), but calls to a type-dependent operator-> that is a member of the current instantiation would be liable to hit the same codepath. llvm-svn: 284999
* add-discriminators: Fix handling of lexical scopes.Adrian Prantl2016-10-243-13/+105
| | | | | | | | | | | | | | | This fixes a bug in the handling of lexical scopes, when more than one scope is defined on the same line or functions are inlined into call sites that are on the same line as the function definition. This situation can easily happen in macro expansions. The problem is solved by introducing a SmallDenseMap<DIScope *, DILexicalBlockFile *, 1> that keeps track of all the different lexical scopes that share a line/file location. Fixes PR30681. llvm-svn: 284998
* Clarify that MSVC is not the issue here anymore.Benjamin Kramer2016-10-241-2/+4
| | | | llvm-svn: 284997
* Revert r284972 and remove other defaulted copy/move constructors/=Krzysztof Parzyszek2016-10-241-8/+0
| | | | | | | David Blaikie pointed out that we get them for free without having to write anything. llvm-svn: 284996
* [PPC] Generate positive FP zero using xor insn instead of loading from ↵Ehsan Amiri2016-10-249-10/+124
| | | | | | | | | | | constant area https://reviews.llvm.org/D23614 Currently we load +0.0 from constant area. That can change to be generated using XOR instruction. llvm-svn: 284995
* ReleaseNotes: mention new compiler requirementsHans Wennborg2016-10-241-0/+2
| | | | llvm-svn: 284994
* Revert r284580+r284917. ("Synthesize TBB/TBH instructions")Eli Friedman2016-10-249-307/+37
| | | | | | | The optimization has correctness issues, so reverting for now to fix tests on thumb1 targets. llvm-svn: 284993
* [clang-tidy] Fix identifier naming in macro args.Jason Henline2016-10-242-11/+68
| | | | | | | | | | | | | | | | | | | | | | Summary: clang-tidy should fix identifier naming even when the identifier is referenced inside a macro expansion, provided that the identifier enters the macro expansion completely within a macro argument. For example, this will allow fixes to the naming of the identifier 'global' when it is declared and used as follows: int global; #define USE_IN_MACRO(m) auto use_##m = m USE_IN_MACRO(global); Reviewers: alexfh Subscribers: jlebar, cfe-commits Differential Revision: https://reviews.llvm.org/D25450 llvm-svn: 284992
* Removed FIXME from include ordering commentSimon Pilgrim2016-10-241-1/+1
| | | | | | Nothing to fix, it's just the way it has to be. llvm-svn: 284991
* Add support for __builtin_os_log_format[_buffer_size]Mehdi Amini2016-10-2415-95/+994
| | | | | | | | | | | | | | These new builtins support a mechanism for logging OS events, using a printf-like format string to specify the layout of data in a buffer. The _buffer_size version of the builtin can be used to determine the size of the buffer to allocate to hold the data, and then __builtin_os_log_format can write data into that buffer. This implements format checking to report mismatches between the format string and the data arguments. Most of this code was written by Chris Willmore. Differential Revision: https://reviews.llvm.org/D25888 llvm-svn: 284990
* Check the number of Args in LibCallsShrinkWrap.Rong Xu2016-10-241-0/+2
| | | | | | Some library fucntions can have no argument. llvm-svn: 284989
* Fix clang-format vim integration issue with non-ascii charactersAlexander Kornienko2016-10-241-1/+1
| | | | | | | | | | | | | | | | clang-format.py currently seems to treat vim.current.buf as ascii-encoded data, which leads to an UnicodeDecodeError when trying to format any text containing non-ascii characters: Traceback (most recent call last): File "<string>", line 1, in <module> File ".../tools/clang/tools/clang-format/clang-format.py", line 110, in <module> main() File ".../tools/clang/tools/clang-format/clang-format.py", line 87, in main stdout, stderr = p.communicate(input=text.encode(encoding)) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 3996: ordinal not in range(128) llvm-svn: 284988
* Use shorter names in TestConcurrentEvents testsPavel Labath2016-10-2435-35/+35
| | | | | | | | | Otherwise, they tend to generate filename too long errors. They already contain the same test name in the directory, file, and class names, so no information is really lost here. llvm-svn: 284987
* [AArch64] Optionally use the Newton series for reciprocal estimationEvandro Menezes2016-10-247-0/+470
| | | | | | | | | Add support for estimating the square root or its reciprocal and division or reciprocal using the combiner generic Newton series. Differential revision: https://reviews.llvm.org/D25291 llvm-svn: 284986
* [ADT] static_assert that SmallDenseMap is instantiated with a power-of-two ↵Justin Lebar2016-10-241-0/+2
| | | | | | | | | | | | | | | | | | | number of inline buckets. Summary: If you try to instantiate it with a non-power-of-two buckets, DenseMap will assert at runtime (!) if we ever outgrow our inline storage. I believe using a constexpr function inside of a static_assert is safe now that we've unsupported MSVC 2013 and GCC < 4.8. Reviewers: bkramer, qcolombet, escha Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25900 llvm-svn: 284985
* [EarlyCSE] Optimize MemoryPhis and reduce memory clobber queries w/ MemorySSAGeoff Berry2016-10-242-10/+79
| | | | | | | | | | | | | | | | | | | | | Summary: When using MemorySSA, re-optimize MemoryPhis when removing a store since this may create MemoryPhis with all identical arguments. Also, when using MemorySSA to check if two MemoryUses are reading from the same version of the heap, use the defining access instead of calling getClobberingAccess, since the latter can currently result in many more AA calls. Once the MemorySSA use optimization tracking changes are done, we can remove this limitation, which should result in more loads being CSE'd. Reviewers: dberlin Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D25881 llvm-svn: 284984
* [PPC] Better codegen for AND, ANY_EXT, SRL sequenceEhsan Amiri2016-10-243-0/+52
| | | | | | | | https://reviews.llvm.org/D24924 This improves the code generated for a sequence of AND, ANY_EXT, SRL instructions. This is a targetted fix for this special pattern. The pattern is generated by target independet dag combiner and so a more general fix may not be necessary. If we come across other similar cases, some ideas for handling it are discussed on the code review. llvm-svn: 284983
* [x86] regenerate checksSanjay Patel2016-10-241-10/+11
| | | | llvm-svn: 284982
* Fix arm64 sub-register definitionsPavel Labath2016-10-241-221/+221
| | | | | | | | | | | The "value regs" field was filled incorrectly. It is supposed to list the registers that *this* register is a sub-register of, not the other way around. This manifested itself in "register read" showing only the smaller sub-registers (and a bunch of tests not passing). I am not sure if the "invalidates" field is correct either, but it's usage seems to be inconsistent, so I'll leave that as-is for now. llvm-svn: 284981
* AMDGPU: Fix Two Address problems with v_movreldNicolai Haehnle2016-10-244-27/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The v_movreld machine instruction is used with three operands that are in a sense tied to each other (the explicit VGPR_32 def and the implicit VGPR_NN def and use). There is no way to express that using the currently available operand bits, and indeed there are cases where the Two Address instructions pass does the wrong thing. This patch introduces a new set of pseudo instructions that are identical in intended semantics as v_movreld, but they only have two tied operands. Having to add a new set of pseudo instructions is admittedly annoying, but it's a fairly straightforward and solid approach. The only alternative I see is to try to teach the Two Address instructions pass about Three Address instructions, and I'm afraid that's trickier and is going to end up more fragile. Note that v_movrels does not suffer from this problem, and so this patch does not touch it. This fixes several GL45-CTS.shaders.indexing.* tests. Reviewers: tstellarAMD, arsenm Subscribers: kzhuravl, wdng, yaxunl, llvm-commits, tony-tye Differential Revision: https://reviews.llvm.org/D25633 llvm-svn: 284980
* Revert 284971.Nico Weber2016-10-243-98/+38
| | | | | | | | | It seems to break selfhost on some bots, see e.g. http://lab.llvm.org:8011/builders/clang-x86-windows-msvc2015/builds/21 http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/20 http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/22 llvm-svn: 284979
* [MC] Fix Various End Of Line Comment checkingsNirav Dave2016-10-246-347/+559
| | | | | | | | | | | | | Fix AsmParser lines to correctly handle end-of-line pre-processor comments parsing when '#' is not the assembly line comment prefix. Reviewers: rnk Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25567 llvm-svn: 284978
* [Chrono] Fix !HAVE_FUTIMENS buildPavel Labath2016-10-241-1/+2
| | | | | | | | If we don't have futimens(), we fall back to futimes(), which only supports microsecond timestamps. In that case, we need to explicitly cast away the extra precision in setLastModificationAndAccessTime(). llvm-svn: 284977
* Reformat RegisterInfos_arm64 into a table. NFCPavel Labath2016-10-241-1986/+184
| | | | llvm-svn: 284976
* Remove unused #includes of TimeValue.h. NFC.Pavel Labath2016-10-243-3/+0
| | | | llvm-svn: 284975
* [Object] Replace TimeValue with std::chronoPavel Labath2016-10-245-30/+32
| | | | | | | | | | | | | | | Summary: Most of the changes are very straight-forward. The only choice I had to make was to use second-precision time points in the Archive classes. I did this because the archive files use that precision in the on-disk representation anyway. Reviewers: rafael, zturner Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25773 llvm-svn: 284974
* AArch64 ILP32 relocations for assembly and ELFJoel Jones2016-10-2412-288/+867
| | | | | | | | | | | | | | | | | | | Summary: Add relocations for AArch64 ILP32. Includes: - Addition of definitions for R_AARCH32_* - Definition of new -target-abi: ilp32 - Definition of data layout string - Tests for added relocations. Not comprehensive, but matches existing tests for 64-bit. Renames "CHECK-OBJ" to "CHECK-OBJ-LP64". - Tests for llvm-readobj Reviewers: zatrazz, peter.smith, echristo, t.p.northover Subscribers: aemerson, rengolin, mehdi_amini Differential Revision: https://reviews.llvm.org/D25159 llvm-svn: 284973
OpenPOWER on IntegriCloud