summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [msf] Create LLVMDebugInfoMsfZachary Turner2016-07-2280-548/+705
| | | | | | | | | | | | | | This provides a better layering of responsibilities among different aspects of PDB writing code. Some of the MSF related code was contained in CodeView, and some was in PDB prior to this. Further, we were often saying PDB when we meant MSF, and the two are actually independent of each other since in theory you can have other types of data besides PDB data in an MSF. So, this patch separates the MSF specific code into its own library, with no dependencies on anything else, and DebugInfoCodeView and DebugInfoPDB take dependencies on DebugInfoMsf. llvm-svn: 276458
* [llvm-ar] Document 'T' thin archive modifier (NFC)Teresa Johnson2016-07-221-0/+1
| | | | llvm-svn: 276457
* [sanitizer] revert r276383 while investigating failures on botKostya Serebryany2016-07-224-40/+34
| | | | llvm-svn: 276456
* Add .rgba syntax extension to ext_vector_type typesPirama Arumuga Nainar2016-07-228-13/+128
| | | | | | | | | | | | | | | | | | Summary: This patch enables .rgba accessors to ext_vector_type types and adds tests for syntax validation and code generation. 'a' and 'b' can appear either in the point access mode or the numeric access mode (for indices 10 and 11). To disambiguate between the two usages, the accessor type is explicitly passed to relevant methods. Reviewers: rsmith Subscribers: Anastasia, bader, srhines, cfe-commits Differential Revision: http://reviews.llvm.org/D20602 llvm-svn: 276455
* Try to fix more Windows portability issues in sanitizer testsReid Kleckner2016-07-224-5/+17
| | | | | | | | | | | | | | Add a %stdcxx11 lit substitution for -std=c++11. Windows defaults to -std=c++14 when VS 2015 is used because the STL requires it. Harcoding -std=c++11 in the ASan tests actually downgrades the C++ standard level, leading to test failures. Relax a FileCheck pattern in use-after-scope-types.cc. Disable the sanitizer_common OOM tests. They fail on bots with low swap, and cause other concurrently running tests to OOM. llvm-svn: 276454
* [ThinLTO/gold] Remove thin archive part of new test due to bot failuresTeresa Johnson2016-07-221-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | I am getting a bot failure from the thin archive part of this test: From http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/40468/steps/test_llvm/logs/LLVM%20%3A%3A%20tools__gold__X86__thinlto_emit_linked_objects.ll: Command Output (stderr): -- /home/bb/cmake-llvm-x86_64-linux/build/./bin/llvm-ar: creating /home/bb/cmake-llvm-x86_64-linux/build/test/tools/gold/X86/Output/thinlto_emit_linked_objects.ll.tmp2.a /usr/bin/ld.gold: internal error in add_writer, at ../../gold/token.h:124 -- This appears to be an issue with an older version of gold. The test case passes for me locally when I use the gold v1.12 I was testing with, but when I tried the gold installed on my system which is v1.11 I get the same error. Remove the thin archive version of the test, since there isn't a way to predicate it on gold version. llvm-svn: 276453
* Recommit - [DSE]Enhance shorthening MemIntrinsic based on OverlapIntervalsJun Bum Lim2016-07-224-62/+218
| | | | | | | | | | | Recommiting r275571 after fixing crash reported in PR28270. Now we erase elements of IOL in deleteDeadInstruction(). Original Summary: This change use the overlap interval map built from partial overwrite tracking to perform shortening MemIntrinsics. Add test cases which was missing opportunities before. llvm-svn: 276452
* add tests for vector bit manipulation intrinsicsSanjay Patel2016-07-221-2/+40
| | | | llvm-svn: 276451
* [ThinLTO/gold] Support for getting list of included objects from goldTeresa Johnson2016-07-223-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In the distributed backend case, the ThinLink step and the final native object link are separate processes. This can be problematic when archive libraries are involved in the link (e.g. via --start-lib/--end-lib pairs). The linker only includes objects from libraries when there is a strong reference to them, and depending on the intervening ThinLTO backend processes' importing/inlining, the strong references may appear different in the two link steps. See D22356 and D22467 for two scenarios where this causes issues. To ensure that the final link includes the same objects, this patch adds support for an "=filename" form of the thinlto-index-only plugin option, in which case objects gold included in the link are emitted to the given filename. This should be used as input to the final link (e.g. via the @filename option to gold), instead of listing all the objects within --start-lib/--end-lib pairs again. Note that the support for the gold callback that identifies included objects was added in gold version 1.12. Reviewers: davidxl, mehdi_amini Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D22677 llvm-svn: 276450
* [PM] Port BreakCriticalEdges to the new PM.Wei Mi2016-07-226-2/+49
| | | | | | Differential Revision: https://reviews.llvm.org/D22688 llvm-svn: 276449
* Clang changes for overloading invariant.start and end intrinsicsAnna Thomas2016-07-222-8/+10
| | | | | | | | | | | | | | | | | | | | This change depends on the corresponding LLVM change at: https://reviews.llvm.org/D22519 The llvm.invariant.start and llvm.invariant.end intrinsics currently support specifying invariant memory objects only in the default address space. With this LLVM change, these intrinsics are overloaded for any adddress space for memory objects and we can use these llvm invariant intrinsics in non-default address spaces. Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr) This overloaded intrinsic is needed for representing final or invariant memory in managed languages. llvm-svn: 276448
* Invariant start/end intrinsics overloaded for address spaceAnna Thomas2016-07-229-23/+78
| | | | | | | | | | | | | | | | | | | | | | Summary: The llvm.invariant.start and llvm.invariant.end intrinsics currently support specifying invariant memory objects only in the default address space. With this change, these intrinsics are overloaded for any adddress space for memory objects and we can use these llvm invariant intrinsics in non-default address spaces. Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr) This overloaded intrinsic is needed for representing final or invariant memory in managed languages. Reviewers: apilipenko, reames Subscribers: llvm-commits llvm-svn: 276447
* [utils] Update coverage regression checking scriptVedant Kumar2016-07-221-37/+41
| | | | | | | | r276409 changed the coverage summary format. Update the script so that it can parse the new output, and incorporate the new information into its warnings. llvm-svn: 276446
* ClangRenameTests: Update libdeps.NAKAMURA Takumi2016-07-221-0/+1
| | | | llvm-svn: 276445
* Remove unused parameters from simplifySCoP(). NFC.Michael Kruse2016-07-222-4/+4
| | | | llvm-svn: 276444
* AMDGPU: Implement get_global_offset builtinJan Vesely2016-07-229-1/+33
| | | | | | | | | | | | | Also fix get_global_id to consider offset No idea how to add this for ptx, so they are stuck with the old get_global_id implementation. v2: split to a separate patch v3: Switch R600 to use implictarg.ptr Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 276443
* AMDGPU: Use clang intrinsics for workitem builtinsJan Vesely2016-07-2214-136/+71
| | | | | | | | | | | v2: split into 2 patches use clang builtins for other intrinsics as well v3: Fix warnings Switch r600 to use implictarg.ptr Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 276442
* [Hexagon] Make HexagonCodeGen depend on ScalarKrzysztof Parzyszek2016-07-221-12/+13
| | | | | | Hexagon backend uses LoopDataPrefetch pass that is defined in Scalar. llvm-svn: 276441
* [sanitizers] Enable sanitizer_common tests on Win64Reid Kleckner2016-07-221-3/+1
| | | | llvm-svn: 276440
* AMDGPU: Remove redundant testMatt Arsenault2016-07-222-115/+1
| | | | llvm-svn: 276439
* AMDGPU: Fix groupstaticsize for large LDSMatt Arsenault2016-07-222-5/+18
| | | | | | | | | The size can exceed s_movk_i32's limit, and we don't want to use it this early since it inhibits optimizations. This should probably be merged to the release branch. llvm-svn: 276438
* AMDGPU: Add HSA dispatch id intrinsicMatt Arsenault2016-07-227-28/+82
| | | | llvm-svn: 276437
* AMDGPU: Delete more dead codeMatt Arsenault2016-07-2210-182/+15
| | | | | | | Remove dead code from r600 intrinsic removal. Remove unset members, rename StackSize to be less ambiguous. llvm-svn: 276436
* AMDGPU: Fix i1 fp_to_intMatt Arsenault2016-07-228-14/+131
| | | | | | | R600's i1 fp_to_uint selected but was incorrect according to what instcombine constant folds to. llvm-svn: 276435
* AMDGPU: Don't reinvent transferSuccessorsAndUpdatePHIsMatt Arsenault2016-07-221-26/+2
| | | | llvm-svn: 276434
* GlobalISel: implement alloca instructionTim Northover2016-07-2213-26/+137
| | | | llvm-svn: 276433
* [SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 ↵Simon Pilgrim2016-07-224-2505/+1051
| | | | | | | | | | | | | | integer scalar/vector types An extension of D19978, this patch replaces the default BITREVERSE evaluation of individual bit masks+shifts with block mask+shifts when we have integer elements of power-of-2 bits in size. After calling BSWAP to reverse the order of the constituent bytes (which typically follows a similar approach), every neighbouring 4-bits, 2-bits and finally 1-bit pairs are masked off and swapped over with shifts. In doing so we can significantly reduce the number of operations required. Differential Revision: https://reviews.llvm.org/D21578 llvm-svn: 276432
* [Profile] Cleanup: remove unused interfaceXinliang David Li2016-07-221-7/+1
| | | | llvm-svn: 276431
* [Support] Make ErrorAsOutParameter take an Error* rather than an Error&.Lang Hames2016-07-227-15/+22
| | | | | | | | | | | | | | | | | | | | | | This allows ErrorAsOutParameter to work better with "optional" errors. For example, consider a function where for certain input values it is known that the function can't fail. This can now be written as: Result foo(Arg X, Error *Err) { ErrorAsOutParameter EAO(Err); if (<Error Condition>) { if (Err) *Err = <report error>; else llvm_unreachable("Unexpected failure!"); } } Rather than having to construct an ErrorAsOutParameter under every conditional where Err is known to be non-null. llvm-svn: 276430
* [RDF] Make the graph construction/use less expensiveKrzysztof Parzyszek2016-07-222-7/+23
| | | | | | | | | - FuncNode::findBlock traverses the function every time. Avoid using it, and keep a cache of block addresses in DataFlowGraph instead. - The operator[] in the map of definition stacks was very slow. Replace the map with unordered_map. llvm-svn: 276429
* Replace enum types in variadic functions by build-in types.Samuel Antao2016-07-223-5/+17
| | | | | | | | | | | | | | | | | | | | | | | Summary: When compiling the runtime library with clang we get warnings like: ``` error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs] va_start( args, id ); ^ note: parameter of type 'kmp_i18n_id_t' (aka 'kmp_i18n_id') is declared here kmp_i18n_id_t id, ``` My understanding is that the va_start macro only gets the promoted type so it won't know what was the exact type of the argument, which can potentially not work for some targets given that the implementation of the the calling convention could not be done properly. This patch fixes that by using a built-in type in the function signature. Reviewers: tlwilmar, jlpeyton, AndreyChurbanov Subscribers: arpith-jacob, carlo.bertolli, caomhin, openmp-commits Differential Revision: https://reviews.llvm.org/D22427 llvm-svn: 276428
* [pdb] Move file layout header structs to RawTypes.hZachary Turner2016-07-227-160/+210
| | | | | | | | This facilitates code reuse between the builder classes and the "frozen" read only versions of the classes used for parsing existing PDB files. llvm-svn: 276427
* [pdb] Round-trip module & file info to/from YAML.Zachary Turner2016-07-2215-67/+367
| | | | | | | | | | This implements support for writing compiland and compiland source file info to a binary PDB. This is tested by adding support for dumping these fields from an existing PDB to yaml, reading them back in, and dumping them again and verifying the values are as expected. llvm-svn: 276426
* test commit. update comment grammatically. NFCAnna Thomas2016-07-221-1/+1
| | | | llvm-svn: 276425
* ptx: Fix builtin names after clang r274770Jan Vesely2016-07-225-13/+13
| | | | | | Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Acked-By: Aaron Watry <awatry@gmail.com> llvm-svn: 276423
* [Hexagon] Use loop data prefetch on HexagonKrzysztof Parzyszek2016-07-226-0/+56
| | | | llvm-svn: 276422
* Use INT64_MAX instead of LLONG_MAXReid Kleckner2016-07-221-1/+1
| | | | llvm-svn: 276419
* [X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 with ↵Simon Pilgrim2016-07-222-2/+31
| | | | | | | | | | generic IR As discussed on D22460, I've updated the vbroadcastf128 pd256/ps256 builtins to map directly to generic IR - load+splat a 128-bit vector to both lanes of a 256-bit vector. Fix for PR28657. llvm-svn: 276417
* [X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 ↵Simon Pilgrim2016-07-2213-223/+171
| | | | | | | | | | | | | | | | (reapplied) As reported on PR26235, we don't currently make use of the VBROADCASTF128/VBROADCASTI128 instructions (or the AVX512 equivalents) to load+splat a 128-bit vector to both lanes of a 256-bit vector. This patch enables lowering from subvector insertion/concatenation patterns and auto-upgrades the llvm.x86.avx.vbroadcastf128.pd.256 / llvm.x86.avx.vbroadcastf128.ps.256 intrinsics to match. We could possibly investigate using VBROADCASTF128/VBROADCASTI128 to load repeated constants as well (similar to how we already do for scalar broadcasts). Reapplied with fix for PR28657 - removed intrinsic definitions (clang companion patch to be be submitted shortly). Differential Revision: https://reviews.llvm.org/D22460 llvm-svn: 276416
* Revert "Revert "[clang-tidy] new cppcoreguidelines-slicing""Clement Courbet2016-07-227-1/+311
| | | | | | Second try for r276408 llvm-svn: 276415
* [clang-rename] introduce better symbol findingKirill Bobyrev2016-07-2216-153/+348
| | | | | | | | | | | | | | | This patch introduces: * TypeLoc visiting, which helps a lot in renaming types * NestedNameSpecifierLoc visiting (through getting them via ASTMatcher at the moment, though, because RecursiveASTVisitor<T>::VisitNestedNameSpecifierLoc isn't implemented), which helps to treat nested names correctly * better code formatting and refactoring * bunch of tests Reviewers: alexfh Differential revision: https://reviews.llvm.org/D22465 llvm-svn: 276414
* Revert "[clang-tidy] new cppcoreguidelines-slicing"Clement Courbet2016-07-227-311/+1
| | | | | | Tests fail on clang-x64-ninja-win7 due to too narrow expectation. llvm-svn: 276413
* Support loading files even when incorrect file name specified by the linkerTamas Berghammer2016-07-229-19/+118
| | | | | | | | | | | | | | | "Incorrect" file name seen on Android whene the main executable is called "app_process32" (or 64) but the linker specifies the package name (e.g. com.android.calculator2). Additionally it can be present in case of some linker bugs. This CL adds logic to try to fetch the correct file name from the proc file system based on the base address sepcified by the linker in case we are failed to load the module by name. Differential revision: http://reviews.llvm.org/D22219 llvm-svn: 276411
* [FastISel] Ignore @llvm.assume.Ahmed Bougacha2016-07-222-0/+16
| | | | llvm-svn: 276410
* [llvm-cov] - Add the coverage of lines in the summary report.Ying Yi2016-07-223-8/+28
| | | | | | | | | | The llvm-cov ‘report' command displays a summary of the coverage of a binary file. The summary report currently only includes covered regions and covered functions. This patch adds the coverage of lines in the summary report. Differential Revision: https://reviews.llvm.org/D22569 llvm-svn: 276409
* [clang-tidy] new cppcoreguidelines-slicingClement Courbet2016-07-227-1/+311
| | | | | | | | | | | | Flags slicing of member variables or vtable. See: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#es63-dont-slice https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c145-access-polymorphic-objects-through-pointers-and-references Differential revision: http://reviews.llvm.org/D21974 llvm-svn: 276408
* [llvm-profdata] Bring back reading profile data from STDIN.Benjamin Kramer2016-07-222-0/+8
| | | | | | This feature was lost in r276197. llvm-svn: 276407
* Fixing layout of elf-core file related structuresPavel Labath2016-07-222-39/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The binary layout of prstatus and prpsinfo was wrong. Some of the member variables where not aligned properly and others where with a wrong type (e.g. the time related stuff in prstatus). I used the structs defined in bfd in binutils to see what the layout of the elf-core format in these section is. (https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/hosts/x86-64linux.h;h=4e420a1f2081dd3b51f5d6b7a8e4093580f5cdb5;hb=master) Note: those structures are only for x86 64 bit elf-core files This shouldn't have any impact on the functionality, because lldb actually uses only a few of the member variables of those structs and they are with a correct type and alignment. I found this while trying to add/fix the support for i386 core files (https://llvm.org/bugs/show_bug.cgi?id=26947) Reviewers: labath Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D22628 Author: Dimitar Vlahovski <dvlahovski@google.com> llvm-svn: 276406
* Revert "[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128"Benjamin Kramer2016-07-2211-167/+207
| | | | | | | | It caused PR28657. This reverts commit r276281. llvm-svn: 276405
* [llvm-cov] - Improve llvm-cov error messageYing Yi2016-07-222-1/+5
| | | | | | | | | | | | | | | | | | | Summary: When giving the following command: % llvm-cov report -instr-profile=default.profraw llvm-cov will give the following error message: >llvm-cov report: Not enough positional command line arguments specified! >Must specify at least 1 positional arguments: See: orbis-llvm-cov report -help This patch changes the error message from '1 positional arguments' to '1 positional argument'. Differential Revision: https://reviews.llvm.org/D22621 llvm-svn: 276404
OpenPOWER on IntegriCloud