summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AMDGPU] Garbage collect now unused dead code. NFCI.Davide Italiano2017-04-011-10/+0
| | | | llvm-svn: 299310
* [InstSimplify] add constant folding for fdiv/fremSanjay Patel2017-04-012-74/+51
| | | | | | Also, add a helper function so we don't have to repeat this code for each binop. llvm-svn: 299309
* [InstSimplify] add tests for missed constant folding; NFCSanjay Patel2017-04-011-3/+21
| | | | llvm-svn: 299308
* fix formatting; NFCSanjay Patel2017-04-011-34/+35
| | | | llvm-svn: 299307
* [ObjC++] Use the correct EH personality in GNU modeBenjamin Kramer2017-04-012-2/+19
| | | | | | | | | Previously, it would just always use the ObjC DWARF personality, even with SjLj or SEH exceptions. Patch by Jonathan Schleifer, test case by me. llvm-svn: 299306
* fix formatting; NFCSanjay Patel2017-04-012-104/+94
| | | | llvm-svn: 299305
* [DAGCombiner] enable vector transforms for any/all {sign} bits set/clearSanjay Patel2017-04-013-72/+54
| | | | | | | | The code already allowed vector types in via "isInteger" (which might want a more specific name), so use splat-friendly constant predicates to match those types. llvm-svn: 299304
* [PowerPC, x86] add vector tests for any/all {sign} bits set/clear; NFCSanjay Patel2017-04-012-0/+237
| | | | llvm-svn: 299303
* MemorySSA: Update expensive checking version of def_chain_iterator for ↵Daniel Berlin2017-04-011-1/+1
| | | | | | templating changes llvm-svn: 299301
* NewGVN: Don't try to kill off the stored value of stores whenDaniel Berlin2017-04-011-9/+22
| | | | | | | | | | | | | processing the congruence class of the store. Because we use the stored value of a store as the def, it isn't dead just because it appears as a def when it comes from a store. Note: I have not hit any cases with the memory code as it is where this breaks anything, just because of what memory congruences we actually allow. In a followup that improves memory congruence, this bug actually breaks real stuff (but the verifier catches it). llvm-svn: 299300
* NewGVN: Clean up GVNExpression memory hierarchy, restructure hash ↵Daniel Berlin2017-04-012-75/+75
| | | | | | computation a bit so we don't have to redefine it for loads, stores, and calls llvm-svn: 299299
* NewGVN: Use def_chain iterator in singleReachablePhiPath instead of recursionDaniel Berlin2017-04-012-28/+34
| | | | llvm-svn: 299298
* Move def_chain iterator to MemorySSA.h so it can be reusedDaniel Berlin2017-04-012-36/+41
| | | | llvm-svn: 299297
* MemorySSA.h - make clang-format happyDaniel Berlin2017-04-011-11/+9
| | | | llvm-svn: 299296
* MemorySSA: Push const correctness further.Daniel Berlin2017-04-011-8/+10
| | | | llvm-svn: 299295
* MemorySSA: Kill the WalkTargetCache now that we have getBlockDefs.Daniel Berlin2017-04-011-39/+6
| | | | llvm-svn: 299294
* [APInt] Implement operator! using operator==(uint64_t). NFCICraig Topper2017-04-011-7/+1
| | | | llvm-svn: 299293
* [APInt] Remove the mul/urem/srem/udiv/sdiv functions from the APIntOps ↵Craig Topper2017-04-013-27/+2
| | | | | | namespace. Replace the few usages with calls to the class methods. NFC llvm-svn: 299292
* [DAGCombiner] Fix fold (or (shuf A, V_0, MA), (shuf B, V_0, MB)) -> (shuf A, ↵Craig Topper2017-04-012-1/+33
| | | | | | | | | | B, Mask) to explicitly ensure that only one of the inputs of each shuffle is a zero vector. This can only happen when we have a mix of zero and undef elements and the two vectors have a different arrangement of zeros/undefs. The shuffle should eventually be constant folded to all zeros. Fixes PR32484. llvm-svn: 299291
* string: Remove always_inline from basic_string::__initDuncan P. N. Exon Smith2017-04-011-5/+5
| | | | | | | | | | | | | | | This is effectively a partial revert of r278356, which started inlining basic_string::__init. Even if we want to help the compiler along with an inlinehint, we shouldn't hamstring it by forcing it to inline all the time. Libc++ uses always_inline widely as a limit-the-ABI-hack, but since __init is already on the dylib boundary, it makes no sense here and just harms the debugging experience at -O0. rdar://problem/31013102 llvm-svn: 299290
* Change the error format to report corrupted .eh_frame.Rui Ueyama2017-04-015-15/+20
| | | | llvm-svn: 299289
* Revert "Feature generic option to setup start/stop-after/before"Quentin Colombet2017-04-014-158/+54
| | | | | | | | This reverts commit r299282. Didn't intend to commit this :( llvm-svn: 299288
* Revert "Localizer fun"Quentin Colombet2017-04-017-446/+0
| | | | | | | | This reverts commit r299283. Didn't intend to commit this :( llvm-svn: 299287
* Revert "Instrument SDISel C++ patterns"Quentin Colombet2017-04-013-369/+356
| | | | | | | | This reverts commit r299284. Didn't intend to commit this :( llvm-svn: 299286
* [RegBankSelect] Support REG_SEQUENCE for generic mappingQuentin Colombet2017-04-012-8/+43
| | | | | | | | | | | | | | | | REG_SEQUENCE falls into the same category as COPY for operands mapping: - They don't have MCInstrDesc with register constraints - The input variable could use whatever register classes - It is possible to have register class already assigned to the operands In particular, given REG_SEQUENCE are always target specific because of the subreg indices. Those indices must apply to the register class of the definition of the REG_SEQUENCE and therefore, the target must set a register class to that definition. As a result, the generic code can always use that register class to derive a valid mapping for a REG_SEQUENCE. llvm-svn: 299285
* Instrument SDISel C++ patternsQuentin Colombet2017-04-013-356/+369
| | | | llvm-svn: 299284
* Localizer funQuentin Colombet2017-04-017-0/+446
| | | | | | WIP llvm-svn: 299283
* Feature generic option to setup start/stop-after/beforeQuentin Colombet2017-04-014-54/+158
| | | | | | | | | | | | | This patch refactors the code used in llc such that all the users of the addPassesToEmitFile API have access to a homogeneous way of handling start/stop-after/before options right out of the box. Previously each user would have needed to duplicate this logic and set up its own options. NFC llvm-svn: 299282
* [coroutines] Add cleanup for compiler injected objects/allocations in ↵Gor Nishanov2017-04-013-28/+114
| | | | | | | | | | | | | | | | | | coroutine body Summary: * Use pushCleanup to emit freeing coroutine memory on normal and EH exits. * Surround emitted code with CodeGenFunction::RunCleanupsScope. Reviewers: rsmith, rnk, EricWF Reviewed By: rnk Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D31460 llvm-svn: 299281
* Change the error message format for duplicate symbols.Rui Ueyama2017-03-316-38/+72
| | | | | | | | | | | | | | | | | | | | | | | | | This patch is intended to improve readability of "duplicate symbol" error messages. Without this patch: /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Relocations.cpp:1054: duplicate symbol 'lld::elf::demangle(llvm::StringRef)' /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Strings.cpp:93: previous definition was here With this patch: /ssd/clang/bin/ld.lld: error: duplicate symbol: lld::elf::demangle(llvm::StringRef) >>> defined at Strings.cpp:93 (/ssd/llvm-project/lld/ELF/Strings.cpp:93) >>> Strings.cpp.o:(lld::elf::demangle(llvm::StringRef)) in archive lib/liblldELF.a >>> defined at Relocations.cpp:1054 (/ssd/llvm-project/lld/ELF/Relocations.cpp:1054) >>> Relocations.cpp.o:(.text+0x4C30) in archive lib/liblldELF.a Discussion thread: http://lists.llvm.org/pipermail/llvm-dev/2017-March/111459.html Differential Revision: https://reviews.llvm.org/D31507 llvm-svn: 299280
* Fix a test to check assembly output instead of bitcode.Peter Collingbourne2017-03-311-3/+3
| | | | llvm-svn: 299279
* Reduce the number of times we query the subtarget for the same information.Eric Christopher2017-03-311-5/+4
| | | | llvm-svn: 299278
* Small cleanup to remove extraneous cast.Eric Christopher2017-03-311-2/+1
| | | | llvm-svn: 299277
* DisassembleRange can return an empty DisassemblerSPJim Ingham2017-03-311-1/+1
| | | | | | | | check for it. <rdar://problem/31379799> llvm-svn: 299276
* AMDGPU/llvm-readobj: Rename RuntimeMDNoteType -> CodeObjectMetadataNoteType toKonstantin Zhuravlyov2017-03-311-2/+2
| | | | | | match the new metadata. NFC. llvm-svn: 299275
* [ThinLTO] Handle -emit-llvm* in ThinLTO backendsTeresa Johnson2017-03-312-1/+32
| | | | | | | | | | | | | | Summary: Use PreCodeGenModuleHook to invoke the correct writer when emitting LLVM IR, returning false to skip codegen from within thinBackend. Reviewers: pcc, mehdi_amini Subscribers: Prazek, cfe-commits Differential Revision: https://reviews.llvm.org/D31534 llvm-svn: 299274
* [APInt] Fix bugs in isShiftedMask to match behavior of the similar function ↵Craig Topper2017-03-313-11/+11
| | | | | | | | | | in MathExtras.h This removes a parameter from the routine that was responsible for a lot of the issue. It was a bit count that had to be set to the BitWidth of the APInt and would get passed to getLowBitsSet. This guaranteed the call to getLowBitsSet would create an all ones value. This was then compared to (V | (V-1)). So the only shifted masks we detected had to have the MSB set. The one in tree user is a transform in InstCombine that never fires due to earlier transforms covering the case better. I've submitted a patch to remove it completely, but for now I've just adapted it to the new interface for isShiftedMask. llvm-svn: 299273
* COFF: tests for thinlto with mangled namesBob Haarman2017-03-312-0/+44
| | | | | | | | | | | | | | Summary: This change adds tests for r299268. Reviewers: pcc, rnk Reviewed By: pcc Subscribers: mehdi_amini, llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D31549 llvm-svn: 299272
* [AMDGPU] Fix typo in test filename. NFC.Konstantin Zhuravlyov2017-03-311-0/+0
| | | | llvm-svn: 299271
* Add virtual destructor to WasmYAML::Section or avoid memory leakDerek Schuff2017-03-312-0/+10
| | | | | | | | | | Tested locally with -DLLVM_USE_SANITIZER=Address Differential Revision: https://reviews.llvm.org/D31551 Patch by Sam Clegg llvm-svn: 299270
* Add/update PIE defaults for OpenBSD.Brad Smith2017-03-312-1/+7
| | | | llvm-svn: 299269
* LTO: call getRealLinkageName on IRNames before feeding to getGUIDBob Haarman2017-03-311-3/+5
| | | | | | | | | | | | | | Summary: GlobalValue has two getGUID methods: an instance method and a static method. The static method takes a string, which is expected to be what GlobalValue::getRealLinkageName() would return. In LTO.cpp, we were not doing this consistently, sometimes passing an IR name instead. This change makes it so that we call getRealLinkageName() first, making the static getGUID return value consistent with the instance method. Without this change, compiling FileCheck with ThinLTO on Windows fails with numerous undefined symbol errors. With the change, it builds successfully. Reviewers: pcc, rnk Reviewed By: pcc Subscribers: tejohnson, mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D31444 llvm-svn: 299268
* [InstCombine] When adding an Instruction and its Users to the worklist at ↵Craig Topper2017-03-311-2/+2
| | | | | | | | the same time, make sure we put the Users in first. Then put in the instruction. This way we ensure we immediately revisit the instruction and do any additional optimizations before visiting the users. Otherwise we might visit the users, then the instruction, then users again, then instruction again. llvm-svn: 299267
* [DAGCombiner] refactor and/or-of-setcc to get rid of duplicated code; NFCISanjay Patel2017-03-311-90/+39
| | | | llvm-svn: 299266
* Fix binary static archive that got mangled by patchReid Kleckner2017-03-311-0/+0
| | | | llvm-svn: 299265
* [llvm-ar] Extract objects to their basename in the CWDReid Kleckner2017-03-313-1/+23
| | | | | | | This is helpful when extracting objects from archives produced by MSVC's lib.exe, which users absolute paths to describe the archive members. llvm-svn: 299264
* [InstCombine] Add test case demonstrating missed opportunities for removing ↵Craig Topper2017-03-311-0/+63
| | | | | | add/sub when the LSBs of one input are known to be 0 and MSBs of the output aren't consumed. llvm-svn: 299263
* [Hexagon] Remove unused variablesKrzysztof Parzyszek2017-03-313-18/+4
| | | | | | Found by PVS-Studio. Fixes llvm.org/PR31676. llvm-svn: 299262
* add more RegisterContext files to xcode projectTim Hammerquist2017-03-311-0/+16
| | | | llvm-svn: 299261
* Stop calling ValueObject::SetName from synthetic child providersTamas Berghammer2017-03-316-20/+28
| | | | | | | | | | | | | | | Summary: Calling ValueObject::SetName from a sythetic child provider would change the underying value object used for the non-synthetic child as well what is clearly unintentional. Reviewers: jingham, labath Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D31371 llvm-svn: 299259
OpenPOWER on IntegriCloud