summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Remove a couple places where we unnecessarily pass 0 to the ↵Craig Topper2019-01-301-4/+4
| | | | | | | | | | EmitPriority of some FP instruction aliases. NFC As far as I can tell we already won't emit these aliases due to an operand count check in the tablegen code. Removing these because I couldn't make sense of the inconsistency between fadd and fmul from reading the code. I checked the AsmMatcher and AsmWriter files before and after this change and there were no differences. llvm-svn: 352608
* [X86] Add FPSW as a Def on some FP instructions that were missing it.Craig Topper2019-01-301-5/+5
| | | | llvm-svn: 352607
* Recognize FreeBSD specific BFD names in OUTPUT_FORMATDimitry Andric2019-01-304-4/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: After rLLD344952 ("Add OUTPUT_FORMAT linker script directive support"), using BFD names such as `elf64-x86-64-freebsd` the `OUTPUT_FORMAT` linker script command does not work anymore, resulting in errors like: ``` ld: error: /home/dim/src/clang800-import/stand/efi/loader/arch/amd64/ldscript.amd64:2: unknown output format name: elf64-x86-64-freebsd >>> OUTPUT_FORMAT("elf64-x86-64-freebsd", "elf64-x86-64-freebsd", "elf64-x86-64-freebsd") >>> ^ ``` To fix this, recognize a `-freebsd` suffix in BFD names, and also set `Configuration::OSABI` to `ELFOSABI_FREEBSD` for those cases. Add and/or update several test cases to check for the correct results of these new `OUTPUT_FORMAT` arguments. Reviewers: ruiu, atanasyan, grimar, hokein, emaste, espindola Reviewed By: ruiu Subscribers: nemanjai, javed.absar, arichardson, krytarowski, kristof.beyls, kbarton, llvm-commits Differential Revision: https://reviews.llvm.org/D57283 llvm-svn: 352606
* [ModuleDependencyCollector] Use llvm::sys::fs::real_path (NFC)Jonas Devlieghere2019-01-301-21/+3
| | | | | | | | | Use the real_path implementation from llvm::sys::fs::real_path instead of having a custom implementation in the ModuleDependencyCollector. Differential revision: https://reviews.llvm.org/D57411 llvm-svn: 352605
* [libFuzzer] remove stale code, NFCKostya Serebryany2019-01-309-346/+0
| | | | llvm-svn: 352604
* [libFuzzer] refactor the handling of instrumentation counters so that they ↵Kostya Serebryany2019-01-304-47/+109
| | | | | | are grouped in regions one full page each. Needed for future optimization. NFC llvm-svn: 352603
* [NFC] fix trivial typos in commentsHiroshi Inoue2019-01-304-7/+7
| | | | llvm-svn: 352602
* GlobalISel: Implement fewerElementsVector for selectMatt Arsenault2019-01-304-1/+306
| | | | llvm-svn: 352601
* [IR] Use CallBase to simplify some codeCraig Topper2019-01-303-10/+6
| | | | | | | | | | | | | | | | | | | Summary: This patch does the following to simplify the asm-goto patch -Move isInlineAsm from CallInst to CallBase to share with CallBrInst in the asm-goto patch. -Forward CallSite's data_operands_begin()/data_operands_end() to CallBase's implementation. -Forward CallSite's getOperandBundlesAsDefs to CallBase. Reviewers: chandlerc Reviewed By: chandlerc Subscribers: nickdesaulniers, llvm-commits Differential Revision: https://reviews.llvm.org/D57415 llvm-svn: 352600
* AMDGPU/GlobalISel: Fix clamping shifts with 16-bit instsMatt Arsenault2019-01-304-2/+129
| | | | llvm-svn: 352599
* [WebAssembly] Exception handling: Switch to the new proposalHeejin Ahn2019-01-3028-1317/+726
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This switches the EH implementation to the new proposal: https://github.com/WebAssembly/exception-handling/blob/master/proposals/Exceptions.md (The previous proposal was https://github.com/WebAssembly/exception-handling/blob/master/proposals/old/Exceptions.md) - Instruction changes - Now we have one single `catch` instruction that returns a except_ref value - `throw` now can take variable number of operations - `rethrow` does not have 'depth' argument anymore - `br_on_exn` queries an except_ref to see if it matches the tag and branches to the given label if true. - `extract_exception` is a pseudo instruction that simulates popping values from wasm stack. This is to make `br_on_exn`, a very special instruction, work: `br_on_exn` puts values onto the stack only if it is taken, and the # of values can vay depending on the tag. - Now there's only one `catch` per `try`, this patch removes all special handling for terminate pad with a call to `__clang_call_terminate`. Before it was the only case there are two catch clauses (a normal `catch` and `catch_all` per `try`). - Make `rethrow` act as a terminator like `throw`. This splits BB after `rethrow` in WasmEHPrepare, and deletes an unnecessary `unreachable` after `rethrow` in LateEHPrepare. - Now we stop at all catchpads (because we add wasm `catch` instruction that catches all exceptions), this creates new `findWasmUnwindDestinations` function in SelectionDAGBuilder. - Now we use `br_on_exn` instrution to figure out if an except_ref matches the current tag or not, LateEHPrepare generates this sequence for catch pads: ``` catch block i32 br_on_exn $__cpp_exception end_block extract_exception ``` - Branch analysis for `br_on_exn` in WebAssemblyInstrInfo - Other various misc. changes to switch to the new proposal. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D57134 llvm-svn: 352598
* GlobalISel: Use appropriate extension for legalizing select conditionsMatt Arsenault2019-01-303-1/+36
| | | | llvm-svn: 352597
* [PowerPC] [NFC] Create a helper function to copy register to particular ↵Zi Xuan Wu2019-01-301-35/+18
| | | | | | | | | | | | register class at PPCFastISel Make copy register code as common function as following. unsigned copyRegToRegClass(const TargetRegisterClass *ToRC, unsigned SrcReg, unsigned Flag = 0, unsigned SubReg = 0); Differential Revision: https://reviews.llvm.org/D57368 llvm-svn: 352596
* Cleanup: replace uses of CallSite with CallBase.James Y Knight2019-01-3020-134/+108
| | | | llvm-svn: 352595
* GlobalISel: Support narrowScalar for uneven loadsMatt Arsenault2019-01-303-12/+168
| | | | llvm-svn: 352594
* Simplify and modernize this code a little.Richard Smith2019-01-301-55/+30
| | | | | | No functionality change intended. llvm-svn: 352593
* [WebAssembly] Optimize BUILD_VECTOR lowering for sizeThomas Lively2019-01-304-112/+238
| | | | | | | | | | | | | | | | | | Summary: Implements custom lowering logic that finds the optimal value for the initial splat of the vector and either uses it or uses v128.const if it is available and if it would produce smaller code. This logic replaces large TableGen ISEL patterns that would lower all non-splat BUILD_VECTORs into a splat followed by a fixed number of replace_lane instructions. This CL fixes PR39685. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56633 llvm-svn: 352592
* GlobalISel: Handle some odd splits in fewerElementsVectorMatt Arsenault2019-01-302-13/+130
| | | | | | Also add some quick hacks to AMDGPU legality for the tests. llvm-svn: 352591
* lld/coff: Implement some support for the comdat selection fieldNico Weber2019-01-306-16/+267
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LLD used to handle comdats as if the selection field was always set to IMAGE_COMDAT_SELECT_ANY. This means for obj files produced by `cl /Gy`, LLD would never report a duplicate symbol error. This change: - adds validation for the Selection field (should make no difference in practice for compiler-generated obj inputs) - rejects comdats that have different Selection fields in different obj files (likewise). This is a bit more strict but also more self-consistent thank link.exe (see comment in code) - implements handling for all the selection kinds In practice, compilers only generate comdats with IMAGE_COMDAT_SELECT_NODUPLICATES (LLD now produces duplicate symbol errors for these), IMAGE_COMDAT_SELECT_ANY (no behavior change), and IMAGE_COMDAT_SELECT_LARGEST (for RTTI data; here LLD should no longer create broken executables when linking some TUs with RTTI enabled and some with it disabled – but see below). The implementation of `IMAGE_COMDAT_SELECT_LARGEST` is incomplete: If one SELECT_LARGEST comdat replaces an earlier one, the comdat symbol is replaced correctly, but the old section stays loaded and if /opt:ref is disabled (via /opt:noref or /debug) it's still written to the output. That's not ideal, but better than the current treatment of just picking any one of those comdats. I hope to fix this better later. Fixes most of PR40094. Differential Revision: https://reviews.llvm.org/D57324 llvm-svn: 352590
* lld-link: Add test I forgot to add in 332012Nico Weber2019-01-301-0/+18
| | | | | | Differential Revision: https://reviews.llvm.org/D46693 llvm-svn: 352589
* [analyzer] [RetainCountChecker] Bugfix for tracking top-level parameters of ↵George Karpenkov2019-01-307-4316/+4333
| | | | | | | | Objective-C methods Differential Revision: https://reviews.llvm.org/D57433 llvm-svn: 352588
* Add enum values to CodeGenOpt::LevelSam Clegg2019-01-301-4/+4
| | | | | | | | | | The absolute values of this enum are important at least in that they get printed by SelectionDAGISel. e.g: `Before: -O2 ; After: -O0` Differential Revision: https://reviews.llvm.org/D57430 llvm-svn: 352587
* [CMake][Fuchsia] Re-enable iOS runtimes for Fuchsia standardPetr Hosek2019-01-301-1/+0
| | | | | | | | Turned out this is used by Flutter which uses Fuchsia Clang toolchain. Differential Revision: https://reviews.llvm.org/D57432 llvm-svn: 352586
* GlobalISel: Handle more cases for widenScalar for G_STOREMatt Arsenault2019-01-302-3/+109
| | | | llvm-svn: 352585
* [CMake][Fuchsia] Enable hermetic static libunwind for FuchsiaPetr Hosek2019-01-301-0/+1
| | | | | | | | | In addition to libc++abi and libc++, we also want to use hermetic static libunwind on Fuchsia. Differential Revision: https://reviews.llvm.org/D57431 llvm-svn: 352584
* [PowerPC] more opportunity for converting reg+reg to reg+immChen Zheng2019-01-302-2/+19
| | | | | | Differential Revision: https://reviews.llvm.org/D57314 llvm-svn: 352583
* Add 8.0 release bug to merge request scriptMatt Arsenault2019-01-301-0/+3
| | | | llvm-svn: 352579
* GlobalISel: Verify memory size for load/storeMatt Arsenault2019-01-309-153/+230
| | | | llvm-svn: 352578
* [libFuzzer] update a test Kostya Serebryany2019-01-301-8/+0
| | | | llvm-svn: 352577
* Remove a redundant space from an error message; NFCGeorge Burgess IV2019-01-301-1/+1
| | | | llvm-svn: 352576
* [WebAssembly] Fix undefined weak function symbols in LTO buildsSam Clegg2019-01-302-3/+25
| | | | | | | | | | Summary: Fixes PR40219 Subscribers: dschuff, mehdi_amini, inglorion, jgravelle-google, aheejin, sunfish, steven_wu, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D57420 llvm-svn: 352575
* Fix thread safety tests after r352549Aaron Puchert2019-01-302-2/+2
| | | | llvm-svn: 352574
* [WebAssembly] Add missing SymbolRef update from rL352551Sam Clegg2019-01-301-2/+2
| | | | | | | | This change broke some MC tests which are now fixed. Differential Revision: https://reviews.llvm.org/D57424 llvm-svn: 352573
* [analyzer] NFC: GenericTaintChecker: Revise rule specification mechanisms.Artem Dergachev2019-01-301-112/+103
| | | | | | | | | | | | | | | | Provide a more powerful and at the same time more readable way of specifying taint propagation rules for known functions within the checker. Now it should be possible to specify an unlimited amount of source and destination parameters for taint propagation. No functional change intended just yet. Patch by Gábor Borsik! Differential Revision: https://reviews.llvm.org/D55734 llvm-svn: 352572
* [libFuzzer] remove stale code Kostya Serebryany2019-01-296-113/+3
| | | | llvm-svn: 352571
* Add FileCollector + test to Xcode project.Jonas Devlieghere2019-01-292-0/+16
| | | | llvm-svn: 352570
* [WebAssembly] Lower SCALAR_TO_VECTOR to splatsThomas Lively2019-01-292-0/+56
| | | | | | | | | | Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish Differential Revision: https://reviews.llvm.org/D57269 llvm-svn: 352568
* [libFuzzer] revert an accidental commitKostya Serebryany2019-01-291-3/+35
| | | | llvm-svn: 352567
* [libFuzzer] remove deprecated support for -fsanitize-coverage=trace-pc[-guard]Kostya Serebryany2019-01-291-35/+3
| | | | llvm-svn: 352566
* GlobalISel: Fix unused variable warning in release buildsMatt Arsenault2019-01-291-2/+1
| | | | llvm-svn: 352565
* [libFuzzer] remove deprecated support for -fsanitize-coverage=trace-pc[-guard]Kostya Serebryany2019-01-294-34/+16
| | | | llvm-svn: 352564
* [IR] Use CallBase to reduce code duplication. NFCCraig Topper2019-01-291-4/+2
| | | | | | | | Noticed in the asm-goto patch. Callbr needs to go here too. One cast and call is better than 3. Differential Revision: https://reviews.llvm.org/D57295 llvm-svn: 352563
* GlobalISel: Verify pointer castsMatt Arsenault2019-01-297-14/+204
| | | | | | | Not sure if the old AArch64 tests should be just deleted or not. llvm-svn: 352562
* [libc++] Fix Windows build error in <functional>Thomas Anderson2019-01-292-5/+7
| | | | | | | | | | | | On my Windows system, __allocator is defined to nothing. This change fixes build errors of the below form: In file included from algorithm:644: functional(1492,31): error: expected member name or ';' after declaration specifiers const _Alloc& __allocator() const { return __f_.second(); } Differential Revision: https://reviews.llvm.org/D57355 llvm-svn: 352561
* GlobalISel: Partially implement widenScalar for MERGE_VALUESMatt Arsenault2019-01-294-31/+232
| | | | llvm-svn: 352560
* [libunwind] Support building hermetic static libraryPetr Hosek2019-01-293-8/+42
| | | | | | | | | | | | | | | This is useful when the static libunwind library is being linked into shared libraries that may be used in with other shared libraries that use different unwinder. We want to avoid avoid exporting libunwind symbols in those cases. This achieved by a new CMake option which can be enabled by libunwind vendors as needed. The same CMake option has already been added to libc++ and libc++abi in D55404 and D56026. Differential Revision: https://reviews.llvm.org/D57107 llvm-svn: 352559
* NFC: Move GenericSelectionExpr dump to NodeDumperStephen Kelly2019-01-293-2/+6
| | | | | | | | | | Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D56961 llvm-svn: 352558
* Fix some warnings in building LLDB.Zachary Turner2019-01-297-59/+27
| | | | | | Differential Revision: https://reviews.llvm.org/D57413 llvm-svn: 352557
* [test] Use correct macro in FileCollectorTest.cppJonas Devlieghere2019-01-291-1/+1
| | | | | | | This test was supposed to be skipped on Windows but was using the wrong macro name. llvm-svn: 352556
* Check bool attribute value in getOptionalBoolLoopAttribute.Alina Sbirlea2019-01-292-1/+99
| | | | | | | | | | | | | | | Summary: Check the bool value of the attribute in getOptionalBoolLoopAttribute not just its existance. Eliminates the warning noise generated when vectorization is explicitly disabled. Reviewers: Meinersbur, hfinkel, dmgreen Subscribers: jlebar, sanjoy, llvm-commits Differential Revision: https://reviews.llvm.org/D57260 llvm-svn: 352555
OpenPOWER on IntegriCloud