summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][X87]: Adding full coverage of MC encoding for all X87 ISA Sets.<NFC>Gadi Haber2017-12-072-0/+3236
| | | | | | | | | | | | | NFC. Currently, not all the X86 ISA Sets are covered by the MC regressions tests for X86. A full coverage needs to be added for each ISA set and for both 32bit and 64bit instructions + registers. This patch includes MC assembly tests for the X87 32bit and 64bit. Reviewers: craigt, RKSimon, zvi Differential Revision: https://reviews.llvm.org/D39952 Change-Id: I55e1719c09a70644a6a4073c720cb5341c80fee9 llvm-svn: 320015
* [InstSimplify] Add tests for the rL319894Igor Laevsky2017-12-072-0/+36
| | | | | | Differential Revision: https://reviews.llvm.org/D40650 llvm-svn: 320014
* [SelectionDAG] In SplitVecOp_EXTRACT_VECTOR_ELT, simplify the code that ↵Craig Topper2017-12-071-11/+2
| | | | | | | | makes the type byte addressable. We can just extend the original vector to vXi1 and trust that the legalization process will revisit it. llvm-svn: 320013
* [SelectionDAG] Use TLI.getVectorIdxTy to determine type for an ↵Craig Topper2017-12-071-1/+2
| | | | | | EXTRACT_VECTOR_ELT index instead of hardcoding MVT::i8. llvm-svn: 320012
* Allow conditions to be decomposed with structured bindingsZhihao Yuan2017-12-077-13/+183
| | | | | | | | | | | | | | | | | | | | | Summary: This feature was discussed but not yet proposed. It allows a structured binding to appear as a //condition// if (auto [ok, val] = f(...)) So the user can save an extra //condition// if the statement can test the value to-be-decomposed instead. Formally, it makes the value of the underlying object of the structured binding declaration also the value of a //condition// that is an initialized declaration. Considering its logicality which is entirely evident from its trivial implementation, I think it might be acceptable to land it as an extension for now before I write the paper. Reviewers: rsmith, faisalv, aaron.ballman Reviewed By: rsmith Subscribers: aaron.ballman, cfe-commits Differential Revision: https://reviews.llvm.org/D39284 llvm-svn: 320011
* Skip DBG instr in OptimizePHIs when looking for dead PHI cyclesMikael Holmen2017-12-072-1/+38
| | | | | | | | | | | | | | | | | | | Summary: Changed use_instructions() to use_nodbg_instructions() when building an instruction set. We don't want the presence of debug info to affect the code we generate. Reviewers: dblaikie, Eugene.Zelenko, chandlerc, aprantl Reviewed By: aprantl Subscribers: aprantl, llvm-commits Differential Revision: https://reviews.llvm.org/D40882 llvm-svn: 320010
* [AVR] Override ParseDirectiveLeslie Zhai2017-12-0715-24/+357
| | | | | | | | | | Reviewers: dylanmckay, kparzysz Reviewed By: dylanmckay Differential Revision: https://reviews.llvm.org/D38029 llvm-svn: 320009
* Test commit accessZhihao Yuan2017-12-071-1/+1
| | | | llvm-svn: 320008
* [WebAssembly] Remove used variableSam Clegg2017-12-072-2/+0
| | | | llvm-svn: 320007
* [ELF] Handle multiple "--version-script" options.Igor Kudrin2017-12-072-1/+7
| | | | | | | | Both ld.bfd and ld.gold can handle this case. Differential Revision: https://reviews.llvm.org/D40878 llvm-svn: 320006
* Remove checkToString functions and use toString instead.Rui Ueyama2017-12-073-46/+34
| | | | | | Differential Revision: https://reviews.llvm.org/D40928 llvm-svn: 320005
* [WebAssembly] Add -u/--undefined argument handlingSam Clegg2017-12-075-0/+70
| | | | | | | | | | | | | | Adds a new argument to wasm-lld, `--undefined`, with similar semantics to the ELF linker. It pulls in symbols from files contained within a `.a` archive, forcing them to be included even if the translation unit would not otherwise be pulled in. Patch by Nicholas Wilson Differential Revision: https://reviews.llvm.org/D40724 llvm-svn: 320004
* Revert "[WebAssembly] Import the linear memory and function table."Sam Clegg2017-12-079-81/+72
| | | | | | | | | We need to a little time to prepare and lld-side change that supports this. Original change: https://reviews.llvm.org/D40875 llvm-svn: 320003
* [WebAssembly] section kind can be codeSam Clegg2017-12-072-1/+21
| | | | | | | | | | | | | Currently, when creating a named section, the Wasm frontend forces it to use `SectionKind::Data`, whereas in fact C++ does generate code sections with custom names. Patch by Nicholas Wilson Differential Revision: https://reviews.llvm.org/D40906 llvm-svn: 320002
* [WebAssembly] Fix symbol exports under -r/--relocatableSam Clegg2017-12-079-117/+94
| | | | | | | | | | | | | | | This change cleans up the way wasm exports and globals are generated, particualrly for -r/--relocatable where globals need to be created and exported in order for output relocations which reference them. Remove the need for a per file GlobalIndexOffset and instead set the output index for each symbol directly. This simplifies the code in several places. Differential Revision: https://reviews.llvm.org/D40859 llvm-svn: 320001
* CodeGen: Fix invalid bitcasts for memcpyYaxun Liu2017-12-072-18/+30
| | | | | | | | | | | | CreateCoercedLoad/CreateCoercedStore assumes pointer argument of memcpy is in addr space 0, which is not correct and causes invalid bitcasts for triple amdgcn---amdgiz. It is fixed by using alloca addr space instead. Differential Revision: https://reviews.llvm.org/D40806 llvm-svn: 320000
* Update BitCodeFormat.Evgeniy Stepanov2017-12-071-0/+2
| | | | | | | Add 2 recently added attributes to list of well-known attributes in BitCodeFormat.rst. llvm-svn: 319999
* [sanitizer] Simplify android_run.py.Evgeniy Stepanov2017-12-071-1/+1
| | | | | | | A test-only change to pass all *SAN_OPTIONS to the device without listing them individually. llvm-svn: 319998
* [DebugInfo] Explicitly pass a triple to this test.Davide Italiano2017-12-071-1/+1
| | | | | | | | As we emit different linetables format on different operating systems, this currently fails on linux. Speculative commit to fix the bots. llvm-svn: 319997
* [COFF] Stop lowercasing paths in messagesShoaib Meenai2017-12-072-5/+18
| | | | | | | | | | | | It's pretty annoying to have LLD lowercase paths in error messages when cross-compiling from a case-sensitive filesystem, since e.g. if I want to examine the problematic object file, I have to perform some manual case correction instead of just being able to copy the path from the error message. Differential Revision: https://reviews.llvm.org/D40931 llvm-svn: 319996
* [MC/Dwarf] Use the older DWARF linetables format on Darwin.Davide Italiano2017-12-076-16/+19
| | | | | | | | | | dsymutil doesn't yet understand the new format and the change, among others, breaks a large fraction of the debugger tests on mac OS. rdar://problem/35856354 llvm-svn: 319995
* [libcxx] [test] Strip trailing whitespace. NFC.Stephan T. Lavavej2017-12-075-5/+5
| | | | llvm-svn: 319994
* [ModRefInfo] Replace remaining bit-wise operations with wrappers.Alina Sbirlea2017-12-073-5/+5
| | | | llvm-svn: 319993
* Remove old concepts parsing codeHubert Tong2017-12-0710-308/+43
| | | | | | | | | | | | | | | | | | Summary: This is so we can implement concepts per P0734R0. Relevant failing test cases are disabled. Reviewers: hubert.reinterpretcast, rsmith, saar.raz, nwilson Reviewed By: saar.raz Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D40380 Patch by Changyu Li! llvm-svn: 319992
* [WebAssembly] Don't try to emit size information for unsized typesDan Gohman2017-12-072-5/+14
| | | | | | | | | | Patch by John Sully! Fixes PR35164. Differential Revision: https://reviews.llvm.org/D39519 llvm-svn: 319991
* [Coverage] Scan ahead for the most-recent completed count (PR35495)Vedant Kumar2017-12-072-12/+13
| | | | | | | | | This extends r319391. It teaches the segment builder to emit the right completed segment when more than one region ends at the same location. Fixes PR35495. llvm-svn: 319990
* [WebAssembly] Import the linear memory and function table.Dan Gohman2017-12-069-72/+81
| | | | | | | | | | | | Instead of having .o files contain linear-memory and function table definitions, use imports. This is more consistent with the stack pointer being imported, and it's consistent with the linker being the one to decide whether linear memory and function table are imported or defined in the linked output. This implements tool-conventions #23. Differential Revision: https://reviews.llvm.org/D40875 llvm-svn: 319989
* [libFuzzer] Decrease stack usage in unit testsKostya Serebryany2017-12-061-26/+26
| | | | | | | | | | | | Summary: With 3 Dictionary objects, each containing space of ~16k DictionaryEntry objects, the MutationDispatcher object is fairly memory heavy. On platforms with a lower default stack size, this can cause panics in FuzzerUnittest as those tests stack-allocate the MutationDispatcher. This may be especially problematic for platforms that do not (yet) have a way to programmatically change their stack size, aside from link-time flags. In general, it seems more prudent to use the heap for an object of this size. Reviewers: kcc, morehouse Reviewed By: kcc Differential Revision: https://reviews.llvm.org/D40926 llvm-svn: 319988
* [CMake] Use PRIVATE when linking LLVM fuzzers.Matt Morehouse2017-12-061-1/+1
| | | | | | More fuzzers missed by r319840. llvm-svn: 319987
* [Lex] Fix some Clang-tidy modernize and Include What You Use warnings; other ↵Eugene Zelenko2017-12-068-225/+313
| | | | | | minor fixes (NFC). llvm-svn: 319986
* [ModRefInfo] Use ModRefInfo wrappers in FunctionModRefBehaviorAlina Sbirlea2017-12-061-4/+5
| | | | | | when testing for info found only in ModRefInfo [NFC]. llvm-svn: 319985
* Update other SizeEnums to be of type uptr as wellVlad Tsyrklevich2017-12-062-2/+2
| | | | llvm-svn: 319984
* [clang] Add PRIVATE to target_link_librariesShoaib Meenai2017-12-061-0/+1
| | | | | | | Another follow-up to r319840. I'd done a test configure with LLVM_BUILD_STATIC, so I'm not sure why this didn't show up in that. llvm-svn: 319983
* Revert SVN r, 319967Kamil Rytarowski2017-12-061-63/+3
| | | | | | | | "Correct atexit(3) support in MSan/NetBSD" This causes failures on Linux. llvm-svn: 319981
* [AArch64] Add patterns to replace fsub fmul with fma fneg.Florian Hahn2017-12-063-7/+194
| | | | | | | | | | | | | | | | | | | Summary: This patch adds MachineCombiner patterns for transforming (fsub (fmul x y) z) into (fma x y (fneg z)). This has a lower latency on micro architectures where fneg is cheap. Patch based on work by George Steed. Reviewers: rengolin, joelkevinjones, joel_k_jones, evandro, efriedma Reviewed By: evandro Subscribers: aemerson, javed.absar, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D40306 llvm-svn: 319980
* [LV] Interleaved access vectorization: fix computing new alias infoAdam Nemet2017-12-062-2/+79
| | | | | | | | | | | As a new access is generated spanning across multiple fields, we need to propagate alias info from all the fields to form the most generic alias info. rdar://35602528 Differential Revision: https://reviews.llvm.org/D40617 llvm-svn: 319979
* [Hexagon] Recognize vdealb, vdealh, vshuffb and vshuffh specificallyKrzysztof Parzyszek2017-12-062-4/+99
| | | | llvm-svn: 319978
* Fix broken windows sanitizer buildbotVlad Tsyrklevich2017-12-061-1/+1
| | | | | | | r319875 caused a sign comparison build failure. Explicitly set the enum's type to be unsigned. llvm-svn: 319977
* Add a call to std::vector::reserve.Rafael Espindola2017-12-061-0/+3
| | | | | | | | | | This reduces total allocations when linking clang fsds from 263.21MB to 174.62MB. This also has some very nice speed improvements on some benchmarks. Chromium and clang fsds link 6% faster. llvm-svn: 319976
* [libFuzzer] fix a minor regression in printingKostya Serebryany2017-12-061-1/+1
| | | | llvm-svn: 319975
* Always evaluate the second argument for CHECK() lazily.Rui Ueyama2017-12-068-79/+76
| | | | | | | | | This patch is to rename check CHECK and make it a C macro, so that we can evaluate the second argument lazily. Differential Revision: https://reviews.llvm.org/D40915 llvm-svn: 319974
* [NFC] Fix formattingPhilip Pfaffe2017-12-061-4/+2
| | | | llvm-svn: 319973
* [libomptarget] Split implementation of interface functionsJonas Hahnfeld2017-12-064-484/+520
| | | | | | | | | | | | This last of four patches adds a new file for the interface functions that Clang uses during code generation. The only change except simply moving the current code is renaming the function CheckDeviceAndCtors() and using the correct type for 64bit device ids. Differential Revision: https://reviews.llvm.org/D40801 llvm-svn: 319972
* [libomptarget] Split implementation of API functionsJonas Hahnfeld2017-12-065-297/+316
| | | | | | | | | | This third patch moves the implementation of the user-facing OpenMP API functions into its own file. For now, the code is only moved, no cleanups applied yet. Differential Revision: https://reviews.llvm.org/D40800 llvm-svn: 319971
* [libomptarget] Split device functionalityJonas Hahnfeld2017-12-064-321/+339
| | | | | | | | | | This is the second patch to split the current monolithic implementation into separate files. Note that this change doesn't cleanup the code yet. Differential Revision: https://reviews.llvm.org/D40799 llvm-svn: 319970
* [libomptarget] Split RTL plugin functionalityJonas Hahnfeld2017-12-066-629/+742
| | | | | | | | | | | This is the first of four patches to split the target agnostic library into multiple (smaller) files. It only moves the code to separate implementation files and does no cleanup (yet) except removing unneeded headers. Differential Revision: https://reviews.llvm.org/D40798 llvm-svn: 319969
* [libomptarget] Move header files and CMake library definitionJonas Hahnfeld2017-12-065-17/+32
| | | | | | | | | | | | | | Future patches will add (private) header files in src/ that should not be visible to plugins, so move the "public" ones to a new include/ directory. This is still internal in a sense that the contained files won't be installed for the user. Similarly, the target agnostic offloading library should be built directly in src/. The parent directory is responsible for finding dependencies and including all subdirectories. Differential Revision: https://reviews.llvm.org/D40797 llvm-svn: 319968
* Correct atexit(3) support in MSan/NetBSDKamil Rytarowski2017-12-061-3/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The NetBSD specific implementation of cxa_atexit() does not preserve the 2nd argument if dso is equal to NULL. Changes: - Split paths of handling intercepted __cxa_atexit() and atexit(3). This affects all supported Operating Systems. - Add a local stack-like structure to hold the __cxa_atexit() context. atexit(3) is documented in the C standard as calling callback from the earliest to the oldest entry. This path also fixes potential ABI problem of passing an argument to a function from the atexit(3) callback mechanism. - Allow usage of global vars with ctors in interceptors. This allows to use Vector without automatic cleaning up the structures. This code has been modeled after TSan implementation for the same functions. Sponsored by <The NetBSD Foundation> Reviewers: joerg, dvyukov, eugenis, vitalybuka, kcc Reviewed By: vitalybuka Subscribers: llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D40714 llvm-svn: 319967
* Handle NetBSD symbol renaming in msan_interceptors.ccKamil Rytarowski2017-12-063-17/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: NetBSD renames symbols for historical and compat reasons. Add required symbol renames in sanitizer_common_interceptors.inc: - gettimeofday -> __gettimeofday50 - getrusage -> __getrusage50 - shmctl -> __shmctl50 Additionally handle sigaction symbol mangling. Rename the function symbol in the file to SIGACTION_SYMNAME and define it as __sigaction14 for NetBSD and sigaction for !NetBSD. We cannot use simple renaming with the proprocessor, as there are valid fields named sigaction and they must be left intact. Sponsored by <The NetBSD Foundation> Reviewers: joerg, eugenis, vitalybuka, dvyukov Reviewed By: vitalybuka Subscribers: kubamracek, llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D40766 llvm-svn: 319966
* [Hexagon] Handle perfect shuffles on single vectorsKrzysztof Parzyszek2017-12-062-6/+39
| | | | llvm-svn: 319965
OpenPOWER on IntegriCloud