summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Define i586 and pentium preprocessor defines for -march=lakemont to ↵Craig Topper2017-11-012-7/+13
| | | | | | match GCC llvm-svn: 317069
* Add --no-omagic and --no-print-gc-sections.Rui Ueyama2017-11-014-2/+20
| | | | llvm-svn: 317068
* Remove Sean Callanan from the CODE_OWNERS, he won't have timeJason Molenda2017-11-011-4/+1
| | | | | | | to participate in lldb going forward. Jim Ingham is adopting the areas he was responsible for. llvm-svn: 317067
* [c++17] Refine resolution of constructor / conversion function disambiguation.Richard Smith2017-11-012-14/+21
| | | | | | | | | | | | Given a choice between a constructor call and a conversion function in C++17, we prefer the constructor for direct-initialization and the conversion function for copy-initialization, matching the behavior in C++14 and before. The guaranteed copy elision rules were not intended to change the meaning of such code (other than by removing unnecessary copy constructor calls). This tweak will be raised with CWG. llvm-svn: 317066
* [Analyzer] Use value storage for BodyFarmGeorge Karpenkov2017-11-013-12/+12
| | | | | | Differential Revision: https://reviews.llvm.org/D39428 llvm-svn: 317065
* Update the synopsis to match the P/R of 2945. No code changes.Marshall Clow2017-11-011-6/+6
| | | | llvm-svn: 317063
* [refactor][extract] code extracted from inline method should be placedAlex Lorenz2017-11-012-2/+49
| | | | | | in a function defined before the outer class llvm-svn: 317062
* Revert "[fuzzer] Fix threaded stack printing and nested mallocs"Vitaly Buka2017-11-015-197/+0
| | | | | | | | | | | Fails on darwin Revert "[fuzzer] Script to detect unbalanced allocation in -trace_malloc output" Needs previous one. This reverts commit r317034, r317036. llvm-svn: 317061
* Add test dependency on llvm-cfi-verify to fix up the build breakages on ↵Mitch Phillips2017-11-011-0/+1
| | | | | | sanitizers. llvm-svn: 317060
* [X86] Add AVX512 support to X86FastISel::fastMaterializeFloatZero.Craig Topper2017-11-011-4/+5
| | | | llvm-svn: 317059
* [globalisel][tablegen] Stop hard-coding the emitted instruction ID to 0. NFCDaniel Sanders2017-11-011-23/+27
| | | | | | | The next commit will add support for multi-instruction emission so we need to start allocating instruction ID's instead of hard-coding them to 0. llvm-svn: 317057
* [refactor][extract] prohibit extraction of ObjC property settersAlex Lorenz2017-11-013-5/+57
| | | | llvm-svn: 317056
* Add system-linux to allow tests run with llvm-lit to restrict themselves to ↵Jake Ehrlich2017-11-011-2/+4
| | | | | | | | | | | | | | linux I need a test that only runs in a reasonable amount of time on systems that have sparse files. The broadest class of systems that support sparse files are linux systems. So restricting my test to linux systems should suffice. This change adds the system-linux feature to llvm-lit so that it can be required. Differential Revision: https://reviews.llvm.org/D39482 llvm-svn: 317055
* [refactor][selection] code ranges can be selected in objc methodsAlex Lorenz2017-11-012-4/+83
| | | | llvm-svn: 317054
* Making a couple of tests a bit more flexible wrt thunk mangling. Fixes ↵Wolfgang Pieb2017-11-012-2/+2
| | | | | | checkin for r317047. llvm-svn: 317053
* Make helper function static. NFC.Benjamin Kramer2017-10-311-1/+1
| | | | llvm-svn: 317052
* [AMDGPU] Clean up symbols in the global namespace.Benjamin Kramer2017-10-314-57/+41
| | | | llvm-svn: 317051
* Parse DWARF information to reduce false positives.Mitch Phillips2017-10-3113-14/+797
| | | | | | | | | | | | | | Summary: Help differentiate code and data by parsing DWARF information. This will reduce false positive rates where data is placed in executable sections and is mistakenly parsed as code, resulting in an inflation in the number of indirect CF instructions (and hence an inflation of the number of unprotected). Also prints the DWARF line data around the region of each indirect CF instruction. Reviewers: pcc Subscribers: probinson, llvm-commits, vlad.tsyrklevich, mgorny, aprantl, kcc Differential Revision: https://reviews.llvm.org/D38654 llvm-svn: 317050
* Re-commit: [globalisel][tablegen] Keep track of the insertion point while ↵Daniel Sanders2017-10-311-32/+73
| | | | | | | | | | | | | | | | | | | adding BuildMIAction's. NFC Multi-instruction emission needs to ensure the the instructions are generated a depth-first fashion. For example: (ADDWrr (SUBWrr a, b), c) needs to emit the SUBWrr before the ADDWrr. However, our walk over TreePatternNode's is highly context sensitive which makes it difficult to append BuildMIActions in the order we want. To fix this, we now keep track of the insertion point as we add actions. This will allow multi-insn emission to insert BuildMI's in the correct place. The previous commit failed on the Ubuntu bots using GCC 4.8. These bots lack the const_iterator forms of insert() and emplace() that were added in C++11. As a result I've switched the const_iterators to iterators. llvm-svn: 317049
* [SimplifyIndVar] Inline makIVComparisonInvariant to eleminate code ↵Philip Reames2017-10-311-51/+29
| | | | | | | | duplication [NFC] This formulation might be slightly slower since I eagerly compute the cheap replacements. If anyone sees this having a compile time impact, let me know and I'll use lazy population instead. llvm-svn: 317048
* Fix for PR33930. Short-circuit metadata mapping when cloning a varargs thunk.Wolfgang Pieb2017-10-313-1/+84
| | | | | | | | | The cloning happens before all metadata nodes are resolved. Prevent the value mapper from running into unresolved or temporary MD nodes. Differential Revision: https://reviews.llvm.org/D39396 llvm-svn: 317047
* Object: Move some code from ELF.h into ELF.cpp.Peter Collingbourne2017-10-312-263/+263
| | | | | | Differential Revision: https://reviews.llvm.org/D39271 llvm-svn: 317046
* Inline compareAddr function into its only caller. NFCI.Peter Collingbourne2017-10-312-7/+5
| | | | llvm-svn: 317045
* [CFI] Add CFI-icall pointer type generalizationVlad Tsyrklevich2017-10-3116-16/+165
| | | | | | | | | | | | | | | | | | | | | | | Summary: This change allows generalizing pointers in type signatures used for cfi-icall by enabling the -fsanitize-cfi-icall-generalize-pointers flag. This works by 1) emitting an additional generalized type signature metadata node for functions and 2) llvm.type.test()ing for the generalized type for translation units with the flag specified. This flag is incompatible with -fsanitize-cfi-cross-dso because it would require emitting twice as many type hashes which would increase artifact size. Reviewers: pcc, eugenis Reviewed By: pcc Subscribers: kcc Differential Revision: https://reviews.llvm.org/D39358 llvm-svn: 317044
* Modernize the example cmdtemplate.py.Jim Ingham2017-10-311-85/+95
| | | | | | | | This version relies on a newer and more convenient way to use a class to implement a command. It has been in place since early 2015, so it should be pretty safe to use. llvm-svn: 317043
* Revert r317040: [globalisel][tablegen] Keep track of the insertion point ↵Daniel Sanders2017-10-311-77/+33
| | | | | | | | | | while adding BuildMIAction's. NFC The same bots fail but I believe I know what the issue is now. These bots are missing the const_iterator versions of insert/emplace/etc. that were introduced in C++11. llvm-svn: 317042
* [codeview] Merge file checksum entries for DIFiles with the same absolute pathReid Kleckner2017-10-313-4/+112
| | | | | | | | Change the map key from DIFile* to the absolute path string. Computing the absolute path isn't expensive because we already have a map that caches the full path keyed on DIFile*. llvm-svn: 317041
* Re-commit: [globalisel][tablegen] Keep track of the insertion point while ↵Daniel Sanders2017-10-311-33/+77
| | | | | | | | | | | | | | | | | | | adding BuildMIAction's. NFC Multi-instruction emission needs to ensure the the instructions are generated a depth-first fashion. For example: (ADDWrr (SUBWrr a, b), c) needs to emit the SUBWrr before the ADDWrr. However, our walk over TreePatternNode's is highly context sensitive which makes it difficult to append BuildMIActions in the order we want. To fix this, we now keep track of the insertion point as we add actions. This will allow multi-insn emission to insert BuildMI's in the correct place. The previous commit failed on the Ubuntu bots using GCC 4.8. These bots didn't like a call to emplace(). I've replaced it with insert() to see if it's a quirk of the C++11 support. llvm-svn: 317040
* Do not access beyond the end of local symbols.Rui Ueyama2017-10-311-1/+11
| | | | | | | | | This patch resurrects code that was removed in r317007 to not access beyond allocated memory for a symbol. Differential Revision: https://reviews.llvm.org/D39458 llvm-svn: 317039
* AMDGPU: Select s_buffer_load_dword with a non-constant SGPR offsetMarek Olsak2017-10-315-17/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Apps that benefit: - alien isolation - bioshock infinite - civilization: beyond earth - company of heroes 2 - dirt showdown - dota 2 - F1 2015 - grid autosport - hitman - legend of grimrock - serious sam 3: bfe - shadow warrior - talos principle - total war: warhammer - UE4 demos: effects cave, elemental, sun temple Reviewers: arsenm, nhaehnle Subscribers: kzhuravl, wdng, yaxunl, dstuttard, tpr, llvm-commits, t-tye Differential Revision: https://reviews.llvm.org/D38914 llvm-svn: 317038
* loop-rotate: simplify code by using llvm::findDbgValues(). (NFC)Adrian Prantl2017-10-311-31/+23
| | | | llvm-svn: 317037
* [fuzzer] Script to detect unbalanced allocation in -trace_malloc outputVitaly Buka2017-10-312-0/+120
| | | | | | | | | | Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39466 llvm-svn: 317036
* [clang-fuzzer] Fix incremental builds of the fuzzerVitaly Buka2017-10-311-11/+6
| | | | | | | | | | | | | | | Summary: Don't use BUILD_IN_SOURCE keep git checkout clean Don't forward CMAKE_GENERATOR as ExternalProject_Add should do it already Reset UPDATE_COMMAND to avoid git checkout updates on each build Reviewers: kcc, morehouse Subscribers: cfe-commits, mgorny Differential Revision: https://reviews.llvm.org/D39445 llvm-svn: 317035
* [fuzzer] Fix threaded stack printing and nested mallocsVitaly Buka2017-10-313-0/+77
| | | | | | | | | | | | Summary: Nested mallocs are possible with internal symbolizer. Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39397 llvm-svn: 317034
* Revert r317029: [globalisel][tablegen] Keep track of the insertion point ↵Daniel Sanders2017-10-311-77/+33
| | | | | | | | while adding BuildMIAction's. NFC The Linux bots don't seem to like this usage of emplace(). Reverting while I look into it. llvm-svn: 317033
* Fix usage of right shift operator in fold expressionsRichard Smith2017-10-313-3/+27
| | | | | | | | The right shift operator was not seen as a valid operator in a fold expression, which is PR32563. Patch by Nicolas Lesser ("Blitz Rakete")! llvm-svn: 317032
* [CodeGen] map sqrt libcalls to llvm.sqrt when errno is not setSanjay Patel2017-10-314-39/+44
| | | | | | | | | | | | | | | | | The LLVM sqrt intrinsic definition changed with: D28797 ...so we don't have to use any relaxed FP settings other than errno handling. This patch sidesteps a question raised in PR27435: https://bugs.llvm.org/show_bug.cgi?id=27435 Is a programmer using __builtin_sqrt() invoking the compiler's intrinsic definition of sqrt or the mathlib definition of sqrt? But we have an answer now: the builtin should match the behavior of the libm function including errno handling. Differential Revision: https://reviews.llvm.org/D39204 llvm-svn: 317031
* Revert "[DWARF] Now that Optional is standard layout, put it into an union ↵Benjamin Kramer2017-10-312-6/+13
| | | | | | | | instead of splatting it." GCC doesn't like it. This reverts commit r317028. llvm-svn: 317030
* [globalisel][tablegen] Keep track of the insertion point while adding ↵Daniel Sanders2017-10-311-33/+77
| | | | | | | | | | | | | | | BuildMIAction's. NFC Multi-instruction emission needs to ensure the the instructions are generated a depth-first fashion. For example: (ADDWrr (SUBWrr a, b), c) needs to emit the SUBWrr before the ADDWrr. However, our walk over TreePatternNode's is highly context sensitive which makes it difficult to append BuildMIActions in the order we want. To fix this, we now keep track of the insertion point as we add actions. This will allow multi-insn emission to insert BuildMI's in the correct place. llvm-svn: 317029
* [DWARF] Now that Optional is standard layout, put it into an union instead ↵Benjamin Kramer2017-10-312-13/+6
| | | | | | | | of splatting it. No functionality change intended. llvm-svn: 317028
* [coro] Make Spill a proper struct instead of deriving from pair.Benjamin Kramer2017-10-311-12/+10
| | | | | | No functionality change. llvm-svn: 317027
* Revert r316305: Remove a fast lookup table from MergeInputSection.Rui Ueyama2017-10-312-1/+19
| | | | | | This reverts commit r316305 because performance regression was observed. llvm-svn: 317026
* [globalisel][tablegen] Factor out implicit def/use renderers from ↵Daniel Sanders2017-10-311-12/+48
| | | | | | | | | | | | createAndImportInstructionRenderer(). NFC Multi-instruction emission will require that we have separate handling for the defs between the implicitly created temporaries and the rule outputs. The former require new temporary vregs while the latter should copy existing operands. Factor out the implicit def/use renderers to minimize the code duplication when we implement that. llvm-svn: 317025
* [SimplifyCFG] Use a more generic name for the selects created by ↵Craig Topper2017-10-311-2/+2
| | | | | | | | | | | | SpeculativelyExecuteBB to prevent long names from being created Currently the selects are created with the names of their inputs concatenated together. It's possible to get cases that chain these selects together resulting in long names due to multiple levels of concatenation. Our internal branch of llvm managed to generate names over 100000 characters in length on a particular test due to an extreme compounding of the names. This patch changes the name to a generic name that is not dependent on its inputs. Differential Revision: https://reviews.llvm.org/D39440 llvm-svn: 317024
* [SimplifyCFG] Regenerate some test cases using update_test_checks.py to ↵Craig Topper2017-10-315-91/+259
| | | | | | | | prepare for an upcoming commit. NFC A future commit will change how some of the value names in the IR are generated which causes these tests to break in their current form. The script generates checks with regular expressions so it should be immune. llvm-svn: 317023
* [globalisel][tablegen] Add infrastructure to potentially allow BuildMIAction ↵Daniel Sanders2017-10-311-43/+73
| | | | | | | | | | | | | | | | | | to choose a mutatable instruction. NFC Prepare for multiple instruction emission by allowing BuildMIAction to search for a suitable matcher that will support mutation. This patch deliberately neglects to add matchers aside from the root to preserve NFC. That said, it should be noted that until we support mutations other than just the opcode the chances of finding a non-root instruction for which canMutate() is true, is essentially zero. Furthermore in the presence of multi-instruction emission the chances of finding any instruction for which canMutate() is true is also zero. Nevertheless, we can't continue to require that all BuildMIAction's consider the root of the match to be recyclable due to the risk of recycling it twice in the same rule. llvm-svn: 317022
* [X86][AVX512] Regenerate tests to remove retl/retq regexSimon Pilgrim2017-10-313-107/+107
| | | | | | These are only testing 64-bit targets so we don't need the regex llvm-svn: 317021
* [X86][AVX512] Split AVX512F and AVX512BW bool-vector bitcast testsSimon Pilgrim2017-10-314-342/+799
| | | | llvm-svn: 317020
* [ADT] Split optional to only include copy mechanics and dtor for non-trivial ↵Benjamin Kramer2017-10-312-58/+117
| | | | | | | | | types. This makes uses of Optional more transparent to the compiler (and clang-tidy) and generates slightly smaller code. llvm-svn: 317019
* [Metadata][NFC] Make MDNode::resolve() public in preparation for the fix to ↵Wolfgang Pieb2017-10-311-3/+3
| | | | | | | PR33930. Reviewers: aprantl llvm-svn: 317018
OpenPOWER on IntegriCloud