summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clang-tidy] Enable Python 3 support for add_new_check.pyJonathan Coe2018-03-241-16/+18
| | | | | | | | | | | | | | Summary: In Python 3, filters are lazily evaluated and strings are not bytes. Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D44217 llvm-svn: 328418
* [sanitizer] Fix Darwin buildVitaly Buka2018-03-242-3/+7
| | | | llvm-svn: 328417
* [X86] Add a new disassembler opcode map for 3DNow. Stop treating 3DNow as an ↵Craig Topper2018-03-246-65/+37
| | | | | | | | attribute. This reduces the size of llvm-mc by at least 150k since we no longer have to multiply the attribute across 7 tables. llvm-svn: 328416
* Mmap interceptor providing mprotect supportVitaly Buka2018-03-247-33/+77
| | | | | | | | | | | | | | | | Summary: - Intercepting mprotect calls. - Fixing forgotten flag check. Patch by David CARLIER Reviewers: vitalybuka, vsk Subscribers: delcypher, srhines, kubamracek, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D44777 llvm-svn: 328415
* [sanitizer] Fix strlcpy and strlcat interceptors on DarwinVitaly Buka2018-03-241-3/+3
| | | | llvm-svn: 328414
* [X86] Use unique_ptr to simplify memory management. NFCCraig Topper2018-03-244-20/+14
| | | | llvm-svn: 328413
* [X86] Use X86_INSTR_MRM_MAPPING macro instead of listing all MRM_C0-MRM_FF ↵Craig Topper2018-03-241-24/+5
| | | | | | format encodings. NFC llvm-svn: 328412
* [X86] Remove an unnecessary switch around two other switches. NFCCraig Topper2018-03-241-69/+54
| | | | | | The outer switch only had one valid block so didn't provide any value. llvm-svn: 328411
* [X86] Merge the Has3DNow0F0FOpcode TSFlag into the OpMap encoding. NFCCraig Topper2018-03-246-44/+42
| | | | | | The 3DNow instructions are encoded a little weird, but we can still represent it as an opcode map. llvm-svn: 328410
* [C++17] Fix class template argument deduction for default constructors ↵Zhihao Yuan2018-03-243-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | without an initializer Summary: As the title says, this makes following code compile: ``` template<typename> struct Foo {}; Foo() -> Foo<void>; Foo f; // ok ``` Thanks Nicolas Lesser for coining the fix. Reviewers: rsmith, lichray Reviewed By: rsmith, lichray Subscribers: lichray, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D38216 llvm-svn: 328409
* Add REQUIRES lines for the targets being checked in this test.Eric Christopher2018-03-241-0/+3
| | | | llvm-svn: 328408
* [HWASan] Fix use-after-free.cc test on x86-64Alex Shlyapnikov2018-03-241-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D44705 llvm-svn: 328407
* [analyzer] Do not crash in CallEvent.getReturnType()George Karpenkov2018-03-243-3/+23
| | | | | | When the call expression is not available. llvm-svn: 328406
* [X86] Add a DAG combine to simplify PMULDQ/PMULUDQ nodesCraig Topper2018-03-242-18/+45
| | | | | | | | These nodes only use the lower 32 bits of their inputs so we can use SimplifyDemandedBits to simplify them. Differential Revision: https://reviews.llvm.org/D44375 llvm-svn: 328405
* [ODRHash] Support pointer and reference types.Richard Trieu2018-03-242-0/+140
| | | | llvm-svn: 328404
* Remove duplicated const qualifier.Alex Shlyapnikov2018-03-241-1/+1
| | | | llvm-svn: 328403
* Add a SectionBase::getVA helper. NFC.Rafael Espindola2018-03-247-21/+21
| | | | | | There were a few too many places duplicating this. llvm-svn: 328402
* Do not add a dummy entry to SharedFile::Verdefs. NFC.Rui Ueyama2018-03-242-10/+7
| | | | | | | | Previously, we used 0 as an alias for VER_NDX_GLOBAL and had a dummy entry in SharedFile::Verdefs so that the access to the array is within its boundary. But that's not straightforwad. We can just stop doing both. llvm-svn: 328401
* Allow FDE references outside the +/-2GB range supported by PC relativeEric Christopher2018-03-242-21/+46
| | | | | | | | | | offsets for code models other than small/medium. For JIT application, memory layout is less controlled and can result in truncations otherwise. Patch based on one by Olexa Bilaniuk! llvm-svn: 328400
* Remove unused header from EntryExitInstrumenterDavid Blaikie2018-03-241-1/+0
| | | | | | | Fixes layering, since Transforms/Utils doesn't depend on CodeGen, so shouldn't include headers from it. llvm-svn: 328399
* [X86] Correct the value AdSizeX in X86II enum. NFCCraig Topper2018-03-241-1/+1
| | | | | | Should be NFC since nothing used the enum value. The instruction descriptions are generated from tablegen which had the correct value. llvm-svn: 328398
* Fix layering by moving ValueTypes.h from CodeGen to IRDavid Blaikie2018-03-2360-65/+61
| | | | | | ValueTypes.h is implemented in IR already. llvm-svn: 328397
* Fix layering of CodeGen/TargetOpcodes.def by moving it to SupportDavid Blaikie2018-03-234-4/+4
| | | | | | | It's also used by utils/TableGen so needs to reside somewhere common to TableGen and CodeGen. llvm-svn: 328396
* Fix layering of MachineValueType.h by moving it from CodeGen to SupportDavid Blaikie2018-03-2374-81/+80
| | | | | | | | | This is used by llvm tblgen as well as by LLVM Targets, so the only common place is Support for now. (maybe we need another target for these sorts of things - but for now I'm at least making them correct & we can make them better if/when people have strong feelings) llvm-svn: 328395
* Fix layering by moving Support/CodeGenCWrappers.h to TargetDavid Blaikie2018-03-233-5/+5
| | | | | | | | This includes llvm-c/TargetMachine.h which is logically part of libTarget (since libTarget implements llvm-c/TargetMachine.h's functions). llvm-svn: 328394
* Fix layering by moving X86DisassemblerDecoderCommon to SupportDavid Blaikie2018-03-234-4/+4
| | | | | | | | | This is used from llvm tblgen and the X86Disassembler - the only common library (apart from TableGen, which probably doesn't make sense to have as a dependency from a release tool (rather than a use-while-building-llvm tool) of LLVM) llvm-svn: 328393
* Move TargetLoweringObjectFile from CodeGen to Target to fix layeringDavid Blaikie2018-03-2338-38/+38
| | | | | | | It's implemented in Target & include from other Target headers, so the header should be in Target. llvm-svn: 328392
* Move a Repl access.Rafael Espindola2018-03-232-3/+2
| | | | | | | | Since SectionBase::getOutputSection handles ICF replaces and SectionBase::getOffset was handling it in some cases, it is more consistent to have getOffset always handle it. llvm-svn: 328391
* Drop redundant ->Repl.Rafael Espindola2018-03-231-1/+1
| | | | | | | SectionBase::getOutputSection handles replacement sections, so this code doesn't have to. llvm-svn: 328390
* Add support for __attribute__(trivial_abi).Jim Ingham2018-03-235-2/+150
| | | | | | <rdar://problem/36035075>, <rdar://problem/36035039> llvm-svn: 328389
* Partially Revert "Workaround GCC bug PR78489 - SFINAE order is not respected."Eric Fiselier2018-03-231-12/+17
| | | | | | | | | | This partially reverts commit r328261. The GCC bug has been fixed in trunk and has never existed in a released version. Therefore the changes to variant are unneeded. However, the additional tests have been left in place. llvm-svn: 328388
* [GuardWidening] Group code by class [NFC]Philip Reames2018-03-231-39/+40
| | | | llvm-svn: 328387
* [X86] Fix Windows `i1 zeroext` conventions to use i8 instead of i32Reid Kleckner2018-03-239-7/+91
| | | | | | | Both GCC and MSVC only look at the low byte of a boolean when it is passed. llvm-svn: 328386
* [HWASan] Port HWASan to Linux x86-64 (compiler-rt)Alex Shlyapnikov2018-03-236-43/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Porting HWASan to Linux x86-64, first of the three patches, compiler-rt part. The approach is similar to ARM case, trap signal is used to communicate memory tag check failure. int3 instruction is used to generate a signal, access parameters are stored in nop [eax + offset] instruction immediately following the int3 one Had to add HWASan init on malloc because, due to much less interceptors defined (most other sanitizers intercept much more and get initalized via one of those interceptors or don't care about malloc), HWASan was not initialized yet when libstdc++ was trying to allocate memory for its own fixed-size heap, which led to CHECK-fail in AllocateFromLocalPool. Also added the CHECK() failure handler with more detailed message and stack reporting. Reviewers: eugenis Subscribers: kubamracek, dberris, mgorny, kristof.beyls, delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D44705 llvm-svn: 328385
* [libFuzzer] Use OptForFuzzing attribute with -fsanitize=fuzzer.Matt Morehouse2018-03-236-10/+19
| | | | | | | | | | | | | | | | | | | Summary: Disables certain CMP optimizations to improve fuzzing signal under -O1 and -O2. Switches all fuzzer tests to -O2 except for a few leak tests where the leak is optimized out under -O2. Reviewers: kcc, vitalybuka Reviewed By: vitalybuka Subscribers: cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D44798 llvm-svn: 328384
* Remove CommandObjectStats.cpp & CleanUpTest.cpp fromJason Molenda2018-03-231-2/+0
| | | | | | installing in the man page directory. llvm-svn: 328383
* Put CommandObjectStats.cpp in lldb-core target, remove CommandObjectStats.h ↵Jason Molenda2018-03-231-4/+4
| | | | | | from targets. llvm-svn: 328382
* Remove "FIXME" from a comment.Rui Ueyama2018-03-231-7/+6
| | | | | | A bug in BFD linker is not our FIXME item. llvm-svn: 328381
* Change for an LLVM header file moveDavid Blaikie2018-03-231-1/+1
| | | | llvm-svn: 328380
* Fix Layering, move instrumentation transform headers into Instrumentation ↵David Blaikie2018-03-239-11/+11
| | | | | | subdirectory llvm-svn: 328379
* [Commands] Add a (currently empty) `stats` command.Davide Italiano2018-03-235-0/+66
| | | | | | | | | | | | | This one will be used to print statistics about lldb sessions (including, e.g. number of expression evaluation succeeded or failed). I decided to commit the skeleton first so that we have a clean reference on how a command should be implemented. My future commits are going to populate this command and test it. <rdar://problem/36555975> llvm-svn: 328378
* [PM][FunctionAttrs] add NoUnwind attribute inference to ↵Fedor Sergeev2018-03-2332-97/+382
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PostOrderFunctionAttrs pass Summary: This was motivated by absence of PrunEH functionality in new PM. It was decided that a proper way to do PruneEH is to add NoUnwind inference into PostOrderFunctionAttrs and then perform normal SimplifyCFG on top. This change generalizes attribute handling implemented for (a removal of) Convergent attribute, by introducing a generic builder-like class AttributeInferer It registers all the attribute inference requests, storing per-attribute predicates into a vector, and then goes through an SCC Node, scanning all the instructions for not breaking attribute assumptions. The main idea is that as soon all the instructions from all the functions of SCC Node conform to attribute assumptions then we are free to infer the attribute as set for all the functions of SCC Node. It handles two distinct cases of attributes: - those that might break due to derefinement of the function code for these attributes we are allowed to apply inference only if all the functions are "exact definitions". Example - NoUnwind. - those that do not care about derefinement for these attributes we are allowed to apply inference as soon as we see any function definition. Example - removal of Convergent attribute. Also in this commit: * Converted all the FunctionAttrs tests to use FileCheck and added new-PM invocations to them * FunctionAttrs/convergent.ll test demonstrates a difference in behavior between new and old PM implementations. Marked with FIXME. * PruneEH tests were converted to new-PM as well, using function-attrs+simplify-cfg combo as intended * some of "other" tests were updated since function-attrs now infers 'nounwind' even for old PM pipeline * -disable-nounwind-inference hidden option added as a possible workaround for a supposedly rare case when nounwind being inferred by default presents a problem Reviewers: chandlerc, jlebar Reviewed By: jlebar Subscribers: eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D44415 llvm-svn: 328377
* FreeBSD sanitizer common, intercept couple of more functionsVitaly Buka2018-03-2310-13/+26
| | | | | | | | | | | | | | | Summary: Intercepts lstat, acct, access, faccessat and strlcpy/strlcat Patch by David CARLIER Reviewers: visa, vitalybuka Subscribers: krytarowski, fedor.sergeev, srhines, kubamracek, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D44432 llvm-svn: 328376
* Revert "Mmap interceptor providing mprotect support"Vitaly Buka2018-03-234-46/+8
| | | | | | | | Breaks Darwin. This reverts commit r328369. llvm-svn: 328375
* Change the darwin-debug target to build the standardJason Molenda2018-03-231-23/+8
| | | | | | archs. llvm-svn: 328374
* [CMakeLists] Update file list after recent changes.Davide Italiano2018-03-231-1/+0
| | | | llvm-svn: 328373
* [InstCombine] simplify code for FP intrinsic shrinking; NFCISanjay Patel2018-03-231-10/+5
| | | | llvm-svn: 328372
* [InstCombine] increase test coverage for intrinsic shrinking; NFCSanjay Patel2018-03-231-48/+48
| | | | | | There were no tests with vector types before this. llvm-svn: 328371
* [Commands] Remove dead code for unused `args` command.Davide Italiano2018-03-234-293/+0
| | | | | | | | | | It wasn't even registered. (lldb) apropos args No commands found pertaining to 'args'. Try 'help' to see a complete list of debugger commands. llvm-svn: 328370
* Mmap interceptor providing mprotect supportVitaly Buka2018-03-234-8/+46
| | | | | | | | | | | | | | | | | | Summary: - Intercepting mprotect calls. - Fixing forgotten flag check. Patch by David CARLIER Reviewers: vitalybuka, vsk Reviewed By: vitalybuka Subscribers: srhines, kubamracek, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D44777 llvm-svn: 328369
OpenPOWER on IntegriCloud