summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Support of lldb on Kfreebsd Sylvestre Ledru2016-12-174-6/+9
| | | | | | | | | | | | | | Summary: Patch by Pino Toscano. Reported in http://bugs.debian.org/835665 Reviewers: tfiala, emaste Subscribers: beanz, mgorny, emaste, krytarowski, brucem, tberghammer, danalbert, srhines, #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D23977 llvm-svn: 290044
* Revert "[libFuzzer] add an experimental flag -experimental_len_control=1 ↵Daniel Jasper2016-12-176-32/+9
| | | | | | | | | | | that sets max_len to 1M and tries to increases the actual max sizes of mutations very gradually. Also remove a bit of dead code" This reverts commit r289998. See comment: https://reviews.llvm.org/rL289998 llvm-svn: 290043
* [ELF] - Use DWARFDebugPubTable parser class intead of hand-written parsing.George Rimar2016-12-171-16/+5
| | | | | | | DWARFDebugPubTable was introduced recently and allows us to get rid of code duplication in LLD. llvm-svn: 290042
* [DWARF] - Make PubIndexEntryDescriptor::toBits() to be const.George Rimar2016-12-171-1/+3
| | | | | | | That is usefull when iterating over entries of new DWARFDebugPubTable class via DWARFDebugPubTable::getData which returns ArrayRef. llvm-svn: 290041
* [DWARF] - Introduce DWARFDebugPubTable class for dumping pub* sections.George Rimar2016-12-174-41/+154
| | | | | | | | | | Patch implements parser of pubnames/pubtypes tables instead of static function used before. It is now should be possible to reuse it in LLD or other projects and clean up the duplication code. Differential revision: https://reviews.llvm.org/D27851 llvm-svn: 290040
* [libFuzzer] use less memory for mergeKostya Serebryany2016-12-173-9/+13
| | | | llvm-svn: 290039
* [OpenMP] Sema and parsing for 'target teams' pragmaKelvin Li2016-12-1741-35/+3323
| | | | | | | | This patch is to implement sema and parsing for 'target teams' pragma. Differential Revision: https://reviews.llvm.org/D27818 llvm-svn: 290038
* Add custom type for PseudoSourceValueTom Stellard2016-12-172-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | Summary: PseudoSourceValue can be used to attach a target specific value for "well behaved" side-effects lowered from target specific intrinsics. This is useful whenever there is not an LLVM IR Value around when representing such "well behaved" side-effected operations in backends by attaching a MachineMemOperand with a custom PseudoSourceValue as this makes the scheduler not treating them as "GlobalMemoryObjects" which triggers a logic that makes the operation act like a barrier in the Schedule DAG. This patch adds another Kind to the PseudoSourceValue object which is "TargetCustom". It indicates a type of PseudoSourceValue that has a target specific meaning (aka. LLVM shouldn't assume any specific usage for such a PSV). It supports the possibility of having many different kinds of "TargetCustom" PseudoSourceValues. We had a discussion about if this was valuable or not (in particular because there was a believe that PSV were going away sooner or later) but seems like they are not going anywhere and I think they are useful backend side. It is not clear the interaction of this with MIRParser (do we need a target hook to parse these?) and I would like a comment from Alex about that :) Reviewers: arphaman, hfinkel, arsenm Subscribers: Eugene.Zelenko, llvm-commits Patch By: Marcello Maggioni Differential Revision: https://reviews.llvm.org/D13575 llvm-svn: 290037
* ADT: Add a getArrayRef() accessor to MapVector.Peter Collingbourne2016-12-171-0/+3
| | | | llvm-svn: 290036
* [libFuzzer] speed up __sanitizer_cov_trace_switch a bit more (remove DIV)Kostya Serebryany2016-12-171-1/+11
| | | | llvm-svn: 290034
* [libFuzzer] remove stale testKostya Serebryany2016-12-171-3/+0
| | | | llvm-svn: 290033
* Move test to correct directoryMatthias Braun2016-12-171-0/+0
| | | | | | See also test/CodeGen/MIR/README llvm-svn: 290032
* [libFuzzer] when tracing switch statements, handle only one case at a time ↵Kostya Serebryany2016-12-173-6/+16
| | | | | | (to make things faster). Also ensure that the signals from value profile do not intersect with the regular coverage llvm-svn: 290031
* Revert "[GVNHoist] Move GVNHoist to function simplification part of pipeline."Evgeniy Stepanov2016-12-172-40/+2
| | | | | | | | This reverts r289696, which caused TSan perf regression. See PR31382. llvm-svn: 290030
* Fix compilation.Evgeniy Stepanov2016-12-171-1/+1
| | | | | | | unittests/ADT/TwineTest.cpp:106:38: error: field 'Count' will be initialized after base 'llvm::FormatAdapter<int>' [-Werror,-Wreorder] explicit formatter(int &Count) : Count(Count), FormatAdapter(0) {} llvm-svn: 290029
* [Hexagon] Other attempt to fix build with enabled asserts broken in 290024 ↵Eugene Zelenko2016-12-171-0/+1
| | | | | | (NFC). llvm-svn: 290028
* [Hexagon] Fix build with enabled asserts broken in 290024 (NFC).Eugene Zelenko2016-12-171-0/+1
| | | | llvm-svn: 290027
* AArch64CollectLOH: Rewrite as block-local analysis.Matthias Braun2016-12-175-850/+473
| | | | | | | | | | | | | | | | | Re-apply r288561: Liveness tracking should be correct now after r290014. Previously this pass was using up to 5% compile time in some cases which is a bit much for what it is doing. The pass featured a full blown data-flow analysis which in the default configuration was restricted to a single block. This rewrites the pass under the assumption that we only ever work on a single block. This is done in a single pass maintaining a state machine per general purpose register to catch LOH patterns. Differential Revision: https://reviews.llvm.org/D27329 llvm-svn: 290026
* [libclang] Remove the 'extern "C"' blocks from the implementation files.Argyrios Kyrtzidis2016-12-1716-119/+3
| | | | | | | These are unnecessary, the declarations already carry the 'extern C' property, and if there is mismatch between declaration and definition then we will get linker errors via libclang.exports. llvm-svn: 290025
* [Hexagon] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2016-12-1711-163/+220
| | | | | | other minor fixes (NFC). llvm-svn: 290024
* [analyzer] UnixAPIChecker: Don't diagnose for functions in C++ namespacesDevin Coughlin2016-12-172-0/+68
| | | | | | | | | | Update the UnixAPIChecker to not diagnose for calls to functions that are declared in C++ namespaces. This avoids false positives when a namespaced function has the same name as a Unix API. This address PR28331. llvm-svn: 290023
* Retry: [BPI] Use a safer constructor to calculate branch probabilitiesVedant Kumar2016-12-173-12/+101
| | | | | | | | | | | | | | | | | | | BPI may trigger signed overflow UB while computing branch probabilities for cold calls or to unreachables. For example, with our current choice of weights, we'll crash if there are >= 2^12 branches to an unreachable. Use a safer BranchProbability constructor which is better at handling fractions with large denominators. Changes since the initial commit: - Use explicit casts to ensure that multiplication operands are 64-bit ints. rdar://problem/29368161 Differential Revision: https://reviews.llvm.org/D27862 llvm-svn: 290022
* Delete unused file.Zachary Turner2016-12-172-2/+0
| | | | llvm-svn: 290021
* Add support for formatv to llvm::Twine.Zachary Turner2016-12-173-1/+51
| | | | | | Differential Revision: https://reviews.llvm.org/D27835 llvm-svn: 290020
* Revert "[BPI] Use a safer constructor to calculate branch probabilities"Vedant Kumar2016-12-173-101/+12
| | | | | | | | | | This reverts commit r290016. It breaks this bot, even though the test passes locally: http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/32956/ AnalysisTests: /home/bb/ninja-x64-msvc-RA-centos6/llvm-project/llvm/lib/Support/BranchProbability.cpp:52: static llvm::BranchProbability llvm::BranchProbability::getBranchProbability(uint64_t, uint64_t): Assertion `Numerator <= Denominator && "Probability cannot be bigger than 1!"' failed. llvm-svn: 290019
* [libfuzzer] removing experimental FuzzerFnAdapterMike Aizatsky2016-12-174-322/+0
| | | | | | | | | | | | Summary: This is superceded by protobuf mutation work. Reviewers: kcc Subscribers: mgorny Differential Revision: https://reviews.llvm.org/D27865 llvm-svn: 290018
* [sancov] skip dead files from computationsMike Aizatsky2016-12-175-26/+70
| | | | | | Differential Revision: https://reviews.llvm.org/D27863 llvm-svn: 290017
* [BPI] Use a safer constructor to calculate branch probabilitiesVedant Kumar2016-12-173-12/+101
| | | | | | | | | | | | | | | BPI may trigger signed overflow UB while computing branch probabilities for cold calls or to unreachables. For example, with our current choice of weights, we'll crash if there are >= 2^12 branches to an unreachable. Use a safer BranchProbability constructor which is better at handling fractions with large denominators. rdar://problem/29368161 Differential Revision: https://reviews.llvm.org/D27862 llvm-svn: 290016
* [ORC][RPC] Use more meaningful template parameter names.Lang Hames2016-12-171-3/+3
| | | | llvm-svn: 290015
* AArch64: Enable post-ra liveness updatesMatthias Braun2016-12-165-7/+19
| | | | | | Differential Revision: https://reviews.llvm.org/D27559 llvm-svn: 290014
* BranchRelaxation: Recompute live-ins when splitting a blockMatthias Braun2016-12-167-30/+54
| | | | | | | | Factors out and reuses live-in computation code from BranchFolding. Differential Revision: https://reviews.llvm.org/D27558 llvm-svn: 290013
* Allow "line 0" to be the first explicit debug location in a function.Paul Robinson2016-12-162-2/+7
| | | | | | Feedback on r289468 from Adrian Prantl. llvm-svn: 290012
* GDB pretty printers: Basic DenseMap supportDavid Blaikie2016-12-161-0/+64
| | | | | | | | | | | | Still prints the empty/tombstone keys (which some people would prefer, but I find pretty noisy) because I haven't yet found a reliable way to skip them (it requires calling into the running process to do so, which isn't ideal for a pretty printer (doesn't work on a core file, for example) - and gdb's ability to do so (or my ability to figure out how to get gdb to do so) is limited) left some breadcrumbs for the next person who might try to address that. llvm-svn: 290011
* Added clangLex to the dependencies for clang-import-test.Sean Callanan2016-12-161-0/+1
| | | | | | This is part of the effort to get the i686-mingw32-RA-on-linux bot to like clang-import-test. llvm-svn: 290010
* Fix MSVC build of libclang after r288438Reid Kleckner2016-12-161-39/+39
| | | | llvm-svn: 290009
* Add explicit triple to test to fix arm bots.Peter Collingbourne2016-12-161-1/+1
| | | | llvm-svn: 290008
* Add isl_multi_pw_aff to GICHelperAlexandre Isoard2016-12-162-0/+10
| | | | | | Add isl_multi_pw_aff* to GICHelper and add some missing isl_pw_multi_aff* handlers. llvm-svn: 290007
* Fixed library dependencies on clang-import-test to clean up the bots.Sean Callanan2016-12-161-0/+2
| | | | llvm-svn: 290006
* [analyzer] Extend UnixAPIChecker open() checks to handle openat().Devin Coughlin2016-12-163-1831/+2143
| | | | | | | | | The openat() API has similar constraints to the open() API -- it just takes an extra parameter. rdar://problem/29526458 llvm-svn: 290005
* Testbed and skeleton of a new expression parserSean Callanan2016-12-1613-0/+381
| | | | | | | | | | | | | | | | | | | | LLVM's JIT is now the foundation of dynamic-compilation features for many languages. Clang also has low-level support for dynamic compilation (ASTImporter and ExternalASTSource, notably). How the compiler is set up for dynamic parsing is generally left up to individual clients, for example LLDB's C/C++/Objective-C expression parser and the ROOT project. Although this arrangement offers external clients the flexibility to implement dynamic features as they see fit, the lack of an in-tree client means that subtle bugs can be introduced that cause regressions in the external clients but aren't caught by tests (or users) until much later. LLDB for example regularly encounters complicated ODR violation scenarios where it is not immediately clear who is at fault. Other external clients (notably, Cling) rely on similar functionality, and another goal is to break this functionality up into composable parts so that any client can be built easily on top of Clang without requiring extensive additional code. I propose that the parts required to build a simple expression parser be added to Clang. Initially, I aim to have the following features: - A piece that looks up external declarations from a variety of sources (e.g., from previous dynamic compilations, from modules, or from DWARF) and uses clear conflict resolution rules to reconcile differences, with easily understood errors. This functionality will be supported by in-tree tests. - A piece that works hand in hand with the LLVM JIT to resolve the locations of external declarations so that e.g. variables can be redeclared and (for high-performance applications like DTrace) external variables can be accessed directly from the registers where they reside. This commit adds a tester that parses a sequence of source files and then uses them as source data for an expression. External references are resolved using an ExternalASTSource that responds to name queries using an ASTImporter. This is the setup that LLDB uses, and the motivating reason for MinimalImport in ASTImporter. When complete, this tester will implement the first of the above goals. Differential Revision: https://reviews.llvm.org/D27180 llvm-svn: 290004
* ModuleSummaryAnalysis: Remove some duplicate code. NFCI.Peter Collingbourne2016-12-161-5/+0
| | | | llvm-svn: 290003
* Fix compiler warning.Zachary Turner2016-12-161-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D27860 llvm-svn: 290002
* Fix a bugs with using some Mach-O command line flags like "-arch armv7m".Kevin Enderby2016-12-1611-58/+111
| | | | | | | | | | | | | | | | | | The Mach-O command line flag like "-arch armv7m" does not match the arch name part of its llvm Triple which is "thumbv7m-apple-darwin”. I think the best way to fix this is to have llvm::object::MachOObjectFile::getArchTriple() optionally return the name of the Mach-O arch flag that would be used with -arch that matches the CPUType and CPUSubType. Then change llvm::object::MachOUniversalBinary::ObjectForArch::getArchTypeName() to use that and change it to getArchFlagName() as the type name is really part of the Triple and the -arch flag name is a Mach-O thing for a specific Triple with a specific Mcpu value. rdar://29663637 llvm-svn: 290001
* Resubmit "[CodeView] Hook CodeViewRecordIO for reading/writing symbols."Zachary Turner2016-12-1616-1174/+1347
| | | | | | | The original patch was broken due to some undefined behavior as well as warnings that were triggering -Werror. llvm-svn: 290000
* [libFuzzer] avoid msan false positives in more casesKostya Serebryany2016-12-163-6/+12
| | | | llvm-svn: 289999
* [libFuzzer] add an experimental flag -experimental_len_control=1 that sets ↵Kostya Serebryany2016-12-166-9/+32
| | | | | | max_len to 1M and tries to increases the actual max sizes of mutations very gradually. Also remove a bit of dead code llvm-svn: 289998
* Really revert all changes from r289979. Apparently conflict resolution failedReid Kleckner2016-12-161-76/+35
| | | | llvm-svn: 289997
* IRGen: Fix assertion failure when creating debug info for an integer ↵Peter Collingbourne2016-12-162-6/+17
| | | | | | constant wider than 64 bits. llvm-svn: 289996
* [libclang] Restore the CXXRecordDecl path for ↵Argyrios Kyrtzidis2016-12-164-35/+103
| | | | | | | | | clang_Type_getNumTemplateArguments and clang_Type_getTemplateArgumentAsType Patch by Emilio Cobos Álvarez! See https://reviews.llvm.org/D26907 llvm-svn: 289995
* Fix compiler warning.Zachary Turner2016-12-161-1/+0
| | | | llvm-svn: 289994
OpenPOWER on IntegriCloud