summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
* [RDF] Add default move constructors/assignment operatorsKrzysztof Parzyszek2016-10-241-2/+6
| | | | llvm-svn: 284972
* [JumpThreading] Unfold selects that depend on the same conditionPablo Barrio2016-10-243-38/+98
| | | | | | | | | | | | | | | | | | Summary: These are good candidates for jump threading. This enables later opts (such as InstCombine) to combine instructions from the selects with instructions out of the selects. SimplifyCFG will fold the select again if unfolding wasn't worth it. Patch by James Molloy and Pablo Barrio. Reviewers: reames, bkramer, mcrosier, gberry, haicheng, jmolloy, sebpop Subscribers: jojo, rengolin, llvm-commits Differential Revision: https://reviews.llvm.org/D25477 llvm-svn: 284971
* Add the new arm64 sub-register definitions to NativeRegisterContextLinuxPavel Labath2016-10-243-3/+148
| | | | | | | | It's quite sad that we have to edit so many files just to add a register. I am going to investigate how to merge these definitions somehow, but for now this should at least get arm64 linux working again. llvm-svn: 284970
* [analyzer] Fix an ARM buildbot after r284960.Artem Dergachev2016-10-242-2/+2
| | | | | | I guess we should always specify triples in all analyzer tests, regardless. llvm-svn: 284969
* Fix windows builds by swapping windows.h and wincrypt.h ordering.Simon Pilgrim2016-10-241-1/+1
| | | | | | We need to include windows.h first even though it breaks default include ordering rules llvm-svn: 284968
* revert r284963 Michael Zuckerman2016-10-242-679/+0
| | | | | | | because new test file is failing in some OS. test/CodeGen/avx512-reduceIntrin.c llvm-svn: 284967
* Remove TimeValue usage from llvm/SupportPavel Labath2016-10-2415-114/+151
| | | | | | | | | | | | | | | | | Summary: This is a follow-up to D25416. It removes all usages of TimeValue from llvm/Support library (except for the actual TimeValue declaration), and replaces them with appropriate usages of std::chrono. To facilitate this, I have added small utility functions for converting time points and durations into appropriate OS-specific types (FILETIME, struct timespec, ...). Reviewers: zturner, mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25730 llvm-svn: 284966
* Adjust for TimePoint interface change in llvm: D25730. NFCPavel Labath2016-10-241-1/+1
| | | | llvm-svn: 284965
* Adjust for TimePoint interface change in llvm: D25730. NFCPavel Labath2016-10-242-3/+6
| | | | llvm-svn: 284964
* [X86][AVX512][Clang][Intrinsics][reduce] Adding missing reduce (Operators: ↵Michael Zuckerman2016-10-242-0/+679
| | | | | | | | | | | | | | | | | | +,*,&&,||) intrinsics to Clang Committed after LGTM and check-all Vector-reduction arithmetic accepts vectors as inputs and produces scalars as outputs. This class of vector operation forms the basis of many scientific computations. In vector-reduction arithmetic, the evaluation off is independent of the order of the input elements of V. Used bisection method. At each step, we partition the vector with previous step in half, and the operation is performed on its two halves. This takes log2(n) steps where n is the number of elements in the vector. Differential Revision: https://reviews.llvm.org/D25527 llvm-svn: 284963
* [mips] synci microMIPS instruction definition.Simon Dardis2016-10-244-3/+19
| | | | | | | | | | | | | Add synci to the microMIPS instruction definitions, mark the MIPS sync & synci as not being part of microMIPS. This does not cover the sync instruction alias, as that will be handled with a different patch. Add sync to the valid tests for microMIPS. Reviewers: vkalintiris Differential Revision: https://reviews.llvm.org/D25795 llvm-svn: 284962
* [Sema] Formatting warnings should see through Objective-C message sendsAlex Lorenz2016-10-242-0/+52
| | | | | | | | | | | | This commit improves the '-Wformat' warnings by ensuring that the formatting checker can see through Objective-C message sends when we are calling an Objective-C method with an appropriate format_arg attribute. rdar://23622446 Differential Revision: https://reviews.llvm.org/D25820 llvm-svn: 284961
OpenPOWER on IntegriCloud