summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ELF] Use the Repl point to avoid the segfault when using ICFPetr Hosek2018-09-213-1/+69
| | | | | | | | This addresses PR38918. Differential Revision: https://reviews.llvm.org/D52202 llvm-svn: 342704
* [MachineCopyPropagation] Refactor copy tracking into a class. NFCJustin Bogner2018-09-211-99/+133
| | | | | | | | This is a bit easier to follow than handling the copy and src maps directly in the pass, and will make upcoming changes to how this is done easier to follow. llvm-svn: 342703
* [llvm-objcopy/llvm-strip]: handle --versionJordan Rupprecht2018-09-215-0/+25
| | | | | | | | | | | | | | | | | Summary: Implement --version for objcopy and strip. I think there are LLVM utilities that automatically handle this, but that doesn't seem to work with custom parsing since this binary handles both objcopy and strip, so it uses custom parsing. This fixes PR38298 Reviewers: jhenderson, alexshap, jakehehrlich Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52328 llvm-svn: 342702
* [WebAssembly] Add WebAssembly to LLVM_ALL_TARGTS.Dan Gohman2018-09-211-0/+1
| | | | | | | | | This makes WebAssembly build by default, rather than requiring LLVM_EXPERIMENTAL_TARGETS_TO_BUILD! Differential Revision: https://reviews.llvm.org/D43211 llvm-svn: 342701
* [MachineCopyPropagation] Minor clang-formatting. NFCJustin Bogner2018-09-211-37/+37
| | | | llvm-svn: 342700
* [lldbtest] Fix self.filecheck check file lookupVedant Kumar2018-09-201-10/+11
| | | | | | | | | | | | | | The 'test_filename' property in TestBase changes over time, so attempting to find a check file relative to the directory containing 'test_filename' is flaky. Use the absolute path of the check file as that's always correct (and simpler). This relies on the test driver changing into the test directory, which it seems we can safely assume. As a drive-by, make self.filecheck respect the trace (-t) option. llvm-svn: 342699
* [fuzzer] Replace FuzzerExtFunctionsDlsymWin.cpp with ↵Jonathan Metzman2018-09-208-76/+1
| | | | | | | | | | | | | | | | | | | | | FuzzerExtFunctionsWeakAlias.cpp Summary: Replace FuzzerExtFunctionsDlsymWin.cpp with FuzzerExtFunctionsWeakAlias.cpp to get externally defined functions (eg: LLVMFuzzerInitialize, LLVMFuzzerCustomMutator, etc) working again. Also enable tests that depended on these functions (on windows) Reviewers: rnk, morehouse Reviewed By: rnk, morehouse Subscribers: rnk, morehouse, mgorny Differential Revision: https://reviews.llvm.org/D51700 llvm-svn: 342698
* Fix DenseSet::ConstIterator typedefsDavid Blaikie2018-09-202-2/+9
| | | | | | | | | | Fix DenseSet::ConstIterator pointer/reference typedefs to be const Patch by Brad Moody! Differential Revision: https://reviews.llvm.org/D52260 llvm-svn: 342697
* Add the ability to register callbacks for removal and insertion of MachineInstrsAditya Nandakumar2018-09-203-1/+53
| | | | | | | | | https://reviews.llvm.org/D52127 This patch adds the ability to watch for insertions/deletions of MachineInstructions similar to MachineRegisterInfo. llvm-svn: 342696
* Make a member function non-member. NFC.Rui Ueyama2018-09-201-2/+1
| | | | | | | | Non-member functions are generally preferred over member functions because it is clear that non-member functions don't depend on an internal state of an object. llvm-svn: 342695
* Remove an unused functionDavid Blaikie2018-09-201-11/+0
| | | | llvm-svn: 342694
* Remove failing test.Zachary Turner2018-09-201-3/+0
| | | | | | | | | | Removing on behalf of Jorge Moya. This test is broken on Windows due to it actually being able to resolve the path. There is an actual Windows-specific bug somewhere, but we already have sufficient test coverage of this with a different test, so removing this was the approach suggested by Jorge. llvm-svn: 342693
* bpf: check illegal usage of XADD insn return valueYonghong Song2018-09-205-0/+159
| | | | | | | | | | | | | | | | | | | | | | | | | Currently, BPF has XADD (locked add) insn support and the asm looks like: lock *(u32 *)(r1 + 0) += r2 lock *(u64 *)(r1 + 0) += r2 The instruction itself does not have a return value. At the source code level, users often use __sync_fetch_and_add() which eventually translates to XADD. The return value of __sync_fetch_and_add() is supposed to be the old value in the xadd memory location. Since BPF::XADD insn does not support such a return value, this patch added a PreEmit phase to check such a usage. If such an illegal usage pattern is detected, a fatal error will be reported like line 4: Invalid usage of the XADD return value if compiled with -g, or Invalid usage of the XADD return value if compiled without -g. Signed-off-by: Yonghong Song <yhs@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> llvm-svn: 342692
* [WebAssembly][NFC] Add missing tests for indirect callsThomas Lively2018-09-201-0/+33
| | | | | | | | | | | | Summary: Depends on D52105. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52254 llvm-svn: 342691
* [WebAssembly] Add v128 value typeThomas Lively2018-09-201-0/+2
| | | | | | | | | | Reviewers: sbc100, aheejin, dschuff Subscribers: jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52106 llvm-svn: 342690
* [WebAssembly] Add V128 value type to binary formatThomas Lively2018-09-209-25/+93
| | | | | | | | | | | | | | Summary: Adds the necessary support to lib/ObjectYAML and fixes SIMD calls to allow the tests to work. Also removes some dead code that would otherwise have to have been updated. Reviewers: aheejin, dschuff, sbc100 Subscribers: jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52105 llvm-svn: 342689
* [MachineOutliner][NFC] Don't add MBBs with a size < 2 to the search spaceJessica Paquette2018-09-201-1/+5
| | | | | | | | | | | The suffix tree won't ever consider sequences with a length less than 2. Therefore, we really ought to not even consider them in the first place. Also add a FIXME explaining that this should be defined in terms of the size in B of an outlined call versus the size in B of the MBB. llvm-svn: 342688
* Rename a function. NFC.Rui Ueyama2018-09-201-2/+2
| | | | llvm-svn: 342687
* Make variable names shorter. NFC.Rui Ueyama2018-09-201-11/+10
| | | | llvm-svn: 342686
* Simplify. NFC.Rui Ueyama2018-09-201-7/+3
| | | | llvm-svn: 342685
* [GlobalDCE] AvailableExternal linkage is checked in isDiscardableIfUnused [NFC].Xin Tong2018-09-201-1/+1
| | | | | | | | | | | | | | | | Summary: AvailableExternal was not handled in isDiscardableIfUnused when isDiscardableIfUnused was added in r158476. Till it was handled in r247044. This is a NFC. Reviewers: pcc, tejohnson Reviewed By: tejohnson Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52319 llvm-svn: 342684
* [InstCombine] rename test file, simplify tests, regenerate full checks; NFCSanjay Patel2018-09-202-39/+58
| | | | | | Fast-math is irrelevant for these transforms. llvm-svn: 342683
* [RegAllocGreedy] Fix crash in tryLocalSplitWalter Lee2018-09-202-1/+270
| | | | | | | | | | tryLocalSplit only handles a single use block, but an interval may have multiple use blocks. So don't crash in that case. This fixes PR38795. Differential revision: https://reviews.llvm.org/D52277 llvm-svn: 342682
* [PDB] Fix -Wcovered-switch-default warning.Zachary Turner2018-09-201-3/+0
| | | | llvm-svn: 342681
* [Hwasan] interceptor macro / extra comma removalDavid Carlier2018-09-201-5/+5
| | | | | | | | | | | | gcc being pedantic, removing the unnecessary comma. Reviewers: eugenis, kcc Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D52305 llvm-svn: 342680
* Fix an assert in -Wquoted-include-in-framework-headerErik Pilkington2018-09-204-1/+6
| | | | | | | | Fixes rdar://43692300 Differential revision: https://reviews.llvm.org/D52253 llvm-svn: 342679
* [Bitcode] Address backwards compat bug in r342631Vedant Kumar2018-09-203-2/+10
| | | | | | | | | | | | | | | | | r342631 expanded bitc::METADATA_LOCATION by one element. The bitcode metadata loader was changed in a backwards-incompatible way, leading to crashes when disassembling old bitcode: assertion: empty() && "PlaceholderQueue hasn't been flushed before being destroyed" Assertion failed: (empty() && "PlaceholderQueue hasn't been flushed before being destroyed") This commit teaches the metadata loader to assume that the newly-added IsImplicitCode bit is 'false' when not present in old bitcode. I've added a bitcode compat regression test. rdar://44645820 llvm-svn: 342678
* [MachineOutliner][NFC] Move debug info emission to createOutlinedFunctionJessica Paquette2018-09-201-35/+23
| | | | | | | | | When you create an outlined function, you know everything you need to know to decide if debug info should be created. If we emit debug info in createOutlinedFunction, then we don't need to keep track of every IR function we create. llvm-svn: 342677
* [inline Cost] Don't mark functions accessing varargs as non-inlinableSameer AbuAsal2018-09-202-7/+34
| | | | | | | | | | | | | | | | | | Summary: rL323619 marks functions that are calling va_end as not viable for inlining. This patch reverses that since this va_end doesn't need access to the vriadic arguments list that are saved on the stack, only va_start does. Reviewers: efriedma, fhahn Reviewed By: fhahn Subscribers: eraman, haicheng, llvm-commits Differential Revision: https://reviews.llvm.org/D52067 llvm-svn: 342675
* Fix -Wtrigraphs.Rui Ueyama2018-09-201-1/+1
| | | | llvm-svn: 342674
* Add paretntheses around a C macro parameter.Rui Ueyama2018-09-201-1/+1
| | | | llvm-svn: 342673
* [Sema] Retain __restrict qualifiers when substituting a reference type.Erik Pilkington2018-09-202-3/+27
| | | | | | | | Fixes rdar://43760099 Differential revision: https://reviews.llvm.org/D52271 llvm-svn: 342672
* Replace boolean parameter with enum value according r342633Tatyana Krasnukha2018-09-201-1/+1
| | | | llvm-svn: 342671
* Fix warnings.Zachary Turner2018-09-202-4/+3
| | | | llvm-svn: 342670
* [SelectionDAG] replace duplicated peekThroughBitcast helper functions; NFCISanjay Patel2018-09-204-51/+39
| | | | | | | | | | | | | | x86 had 2 versions of peekThroughBitcast. DAGCombiner had 1. Plus, it had a 1-off implementation for the one-use variant. Move the x86 versions of the code to SelectionDAG, so we don't have different copies of the code. No functional change intended. I'm putting this next to isBitwiseNot() because I am planning to use it in there. Another option is next to the helpers in the ISD namespace (eg, ISD::isConstantSplatVector()). But if there's no good reason for those to be there, I'd prefer to pull other helpers over to SelectionDAG in follow-up steps. Differential Revision: https://reviews.llvm.org/D52285 llvm-svn: 342669
* Add testcases for r342667.Eric Christopher2018-09-202-0/+6
| | | | llvm-svn: 342668
* r342177 introduced a hint in cases where an #included file is not found. It ↵Eric Christopher2018-09-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | tries to find a suggestion by removing leading or trailing non-alphanumeric characters and checking if a matching file exists, then it reports an error like: include-likely-typo.c:3:10: error: '<empty_file_to_include.h>' file not found, did you mean 'empty_file_to_include.h'? ^~~~~~~~~~~~~~~~~~~~~~~~~~~ "empty_file_to_include.h" 1 error generated. However, if a hint is not found, the error message will show only the trimmed name we use to look for a hint, so: will result in: include-leading-nonalpha-no-suggest.c:3:10: fatal error: 'non_existing_file_to_include.h' file not found ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. where the name reported after "fatal error:" doesn't match what the user wrote. Patch by Jorge Gorbe! Differential Revision: https://reviews.llvm.org/D52280 This change reports the original file name instead of the trimmed one when a suggestion is not found. llvm-svn: 342667
* [OPENMP] Fix spelling of getLoopCounter (NFC)Mike Rice2018-09-204-7/+7
| | | | llvm-svn: 342666
* [InstCombine] add tests for vector concat with binop (PR33026); NFCSanjay Patel2018-09-201-0/+281
| | | | llvm-svn: 342665
* [New PM] Introducing PassInstrumentation frameworkFedor Sergeev2018-09-2022-35/+720
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass Execution Instrumentation interface enables customizable instrumentation of pass execution, as per "RFC: Pass Execution Instrumentation interface" posted 06/07/2018 on llvm-dev@ The intent is to provide a common machinery to implement all the pass-execution-debugging features like print-before/after, opt-bisect, time-passes etc. Here we get a basic implementation consisting of: * PassInstrumentationCallbacks class that handles registration of callbacks and access to them. * PassInstrumentation class that handles instrumentation-point interfaces that call into PassInstrumentationCallbacks. * Callbacks accept StringRef which is just a name of the Pass right now. There were some ideas to pass an opaque wrapper for the pointer to pass instance, however it appears that pointer does not actually identify the instance (adaptors and managers might have the same address with the pass they govern). Hence it was decided to go simple for now and then later decide on what the proper mental model of identifying a "pass in a phase of pipeline" is. * Callbacks accept llvm::Any serving as a wrapper for const IRUnit*, to remove direct dependencies on different IRUnits (e.g. Analyses). * PassInstrumentationAnalysis analysis is explicitly requested from PassManager through usual AnalysisManager::getResult. All pass managers were updated to run that to get PassInstrumentation object for instrumentation calls. * Using tuples/index_sequence getAnalysisResult helper to extract generic AnalysisManager's extra args out of a generic PassManager's extra args. This is the only way I was able to explicitly run getResult for PassInstrumentationAnalysis out of a generic code like PassManager::run or RepeatedPass::run. TODO: Upon lengthy discussions we agreed to accept this as an initial implementation and then get rid of getAnalysisResult by improving RepeatedPass implementation. * PassBuilder takes PassInstrumentationCallbacks object to pass it further into PassInstrumentationAnalysis. Callbacks registration should be performed directly through PassInstrumentationCallbacks. * new-pm tests updated to account for PassInstrumentationAnalysis being run * Added PassInstrumentation tests to PassBuilderCallbacks unit tests. Other unit tests updated with registration of the now-required PassInstrumentationAnalysis. Made getName helper to return std::string (instead of StringRef initially) to fix asan builtbot failures on CGSCC tests. Reviewers: chandlerc, philip.pfaffe Differential Revision: https://reviews.llvm.org/D47858 llvm-svn: 342664
* Refactor FindVariable() core functionality into StackFrame out of SBFrameShafik Yaghmour2018-09-203-20/+52
| | | | | | | | | | rdar://problem/14365983 Patch by Shafik Yaghmour Differential Revision: https://reviews.llvm.org/D52247 llvm-svn: 342663
* [ELF][HEXAGON] Set DefaultMaxPageSize to 64KSid Manning2018-09-202-50/+56
| | | | | | Update testcase to reflect the change. llvm-svn: 342662
* [profile] Fix tests in compiler-rt for patch in gcov ↵Calixte Denizet2018-09-203-5/+3
| | | | | | | | | | | | | | | | (https://reviews.llvm.org/D49659) Summary: Some tests are broken if patch in D49659 is accepted so this patch fixes them. Reviewers: marco-c Reviewed By: marco-c Subscribers: dberris, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D49721 llvm-svn: 342661
* Fix one more test failure.Zachary Turner2018-09-201-3/+3
| | | | llvm-svn: 342660
* [PDB] Fix failing test.Zachary Turner2018-09-201-3/+3
| | | | | | | This test was missed on the last run since I only ran a subset of them before commiting. llvm-svn: 342659
* [PDB] Better printing of builtin types when using DIA dumper.Zachary Turner2018-09-204-2/+34
| | | | llvm-svn: 342658
* [gcov] Fix wrong line hit counts when multiple blocks are on the same lineCalixte Denizet2018-09-2015-48/+174
| | | | | | | | | | | | | | | | | | | | | Summary: The goal of this patch is to have the same behaviour than gcc-gcov. Currently the hit counts for a line is the sum of the counts for each block on that line. The idea is to detect the cycles in the graph of blocks in using the algorithm by Hawick & James. The count for a cycle is the min of the counts for each edge in the cycle. Once we've the count for each cycle, we can sum them and add the transition counts of those cycles. Fix both https://bugs.llvm.org/show_bug.cgi?id=38065 and https://bugs.llvm.org/show_bug.cgi?id=38066 Reviewers: marco-c, davidxl Reviewed By: marco-c Subscribers: vsk, lebedev.ri, sylvestre.ledru, dblaikie, llvm-commits Differential Revision: https://reviews.llvm.org/D49659 llvm-svn: 342657
* [PDB] Add the ability to map forward references to full decls.Zachary Turner2018-09-2015-17/+416
| | | | | | | | | | | | | | | | | | | | | Some records point to an LF_CLASS, LF_UNION, LF_STRUCTURE, or LF_ENUM which is a forward reference and doesn't contain complete debug information. In these cases, we'd like to be able to quickly locate the full record. The TPI stream stores an array of pre-computed record hash values, one for each type record. If we pre-process this on startup, we can build a mapping from hash value -> {list of possible matching type indices}. Since hashes of full records are only based on the name and or unique name and not the full record contents, we can then use forward ref record to compute the hash of what *would* be the full record by just hashing the name, use this to get the list of possible matches, and iterate those looking for a match on name or unique name. llvm-pdbutil is updated to resolve forward references for the purposes of testing (plus it's just useful). Differential Revision: https://reviews.llvm.org/D52283 llvm-svn: 342656
* [llvm-mca][BtVer2] Modify ANDN tests in zero-idioms-avx-256.s. NFCAndrea Di Biagio2018-09-201-42/+42
| | | | | | | Two test cases should have tested 256-bit variants of VANDN zero-idioms instead of the 128-bit variants. llvm-svn: 342655
* Fix test after r342652David Major2018-09-201-0/+1
| | | | llvm-svn: 342654
OpenPOWER on IntegriCloud