summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [CMake] Allow TableGen.cmake to be included multiple timesChris Bieneman2017-07-251-1/+1
| | | | | | This patch allows TableGen.cmake to be safely included multiple times in sub-projects. llvm-svn: 309029
* AMDGPU/SI: Fix Depth and Height computation for SI schedulerMarek Olsak2017-07-251-3/+3
| | | | | | | | Patch by: Axel Davy Differential Revision: https://reviews.llvm.org/D34967 llvm-svn: 309028
* AMDGPU/SI: Force exports at the end for SI schedulerMarek Olsak2017-07-252-0/+60
| | | | | | | | Patch by: Axel Davy Differential Revision: https://reviews.llvm.org/D34965 llvm-svn: 309027
* [CMake] Build debugserver & debugserver_nonuiChris Bieneman2017-07-251-8/+64
| | | | | | | | When building for iOS we build two variants of debugserver. One which supports UI functionality like Springboard for launching applications, and one which does not. This patch adds support for building debugserver with and without UI support libraries being available. llvm-svn: 309026
* [CMake] Update Framework construction for iOSChris Bieneman2017-07-252-8/+18
| | | | | | On iOS frameworks don't have versions or resources, they are flatter bundles. This updates the LLDB framework build to accommodate the flatter bundles. llvm-svn: 309025
* [CMake] Rework construction of framework bundleChris Bieneman2017-07-252-5/+40
| | | | | | This adds an explicit step for processing the headers and restructures how the framework bundles are constructed. This should make the frameworks more reliably constructed. llvm-svn: 309024
* [CMake] Fix framework buildChris Bieneman2017-07-251-1/+3
| | | | | | The LLDB framework build looks for the swig-generated source in the wrong place. This should resolve that. llvm-svn: 309023
* [CMake] NFC. Cleanup unnecessary CMake policyChris Bieneman2017-07-251-4/+0
| | | | | | This is just setting to the default behavior, so it does nothing. llvm-svn: 309022
* [CMake] Cleanup unnecessary definitionChris Bieneman2017-07-251-4/+4
| | | | | | This is only used in one file, and we already set it correctly on that file, so we don't need to set this everywhere. llvm-svn: 309021
* [CMake] Add debugserver entitlementsChris Bieneman2017-07-251-2/+6
| | | | | | When consigning debugserver we should also include the entitlements file on the code sign command. llvm-svn: 309020
* Improve the fix for PR33875 by not hardcoding the section name.Adrian Prantl2017-07-251-6/+6
| | | | | | This is a follow-up to r308905. llvm-svn: 309019
* Fix a bot by linking clang-import-test against libclangDriverSean Callanan2017-07-251-0/+1
| | | | llvm-svn: 309018
* [COFF] Add support for delay loading DLLs on ARMMartin Storsjo2017-07-254-3/+159
| | | | | | Differential Revision: https://reviews.llvm.org/D35768 llvm-svn: 309017
* [AArch64] Update a comment in a testMartin Storsjo2017-07-251-5/+4
| | | | | | | | The comment ended up outdated when the test was rewritten in SVN r192281. Differential Revision: https://reviews.llvm.org/D35543 llvm-svn: 309016
* [AArch64] Add a test for float argument passing to win64 vararg functionsMartin Storsjo2017-07-251-0/+26
| | | | | | | | The existing tests only tested how a va_start is lowered. Differential Revision: https://reviews.llvm.org/D35540 llvm-svn: 309015
* [ExternalASTMerger] Import Objective-C classesSean Callanan2017-07-254-13/+41
| | | | | | | | | | | | | This patch adds functionality and a test for importing Objective-C classes and their methods. It also adds a flag to clang-import-test to set the language used for parsing. This takes the same argument format as the -x option to the driver. Differential Revision: https://reviews.llvm.org/D35274 llvm-svn: 309014
* [Frontend] Mark some ASTUnit methods as const. NFC.Vedant Kumar2017-07-252-17/+17
| | | | | | | | Patch by Hamza Sood! Differential Revision: https://reviews.llvm.org/D35729 llvm-svn: 309013
* [LTO] Prevent dead stripping and internalization of symbols with sectionsTeresa Johnson2017-07-258-5/+134
| | | | | | | | | | | | | | | | | | | | | | | Summary: ELF linkers generate __start_<secname> and __stop_<secname> symbols when there is a value in a section <secname> where the name is a valid C identifier. If dead stripping determines that the values declared in section <secname> are dead, and we then internalize (and delete) such a symbol, programs that reference the corresponding start and end section symbols will get undefined reference linking errors. To fix this, add the section name to the IRSymtab entry when a symbol is defined in a specific section. Then use this in the gold-plugin to mark the symbol as external and visible from outside the summary when the section name is a valid C identifier. Reviewers: pcc Subscribers: mehdi_amini, inglorion, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D35639 llvm-svn: 309009
* [ubsan] -fsanitize=vptr now requires -fsanitize=null, update testsVedant Kumar2017-07-254-10/+19
| | | | | See: https://bugs.llvm.org/show_bug.cgi?id=33881 llvm-svn: 309008
* [ubsan] Null-check pointers in -fsanitize=vptr (PR33881)Vedant Kumar2017-07-2512-26/+109
| | | | | | | | | | | | | | | | | | | The instrumentation generated by -fsanitize=vptr does not null check a user pointer before loading from it. This causes crashes in the face of UB member calls (this=nullptr), i.e it's causing user programs to crash only after UBSan is turned on. The fix is to make run-time null checking a prerequisite for enabling -fsanitize=vptr, and to then teach UBSan to reuse these run-time null checks to make -fsanitize=vptr safe. Testing: check-clang, check-ubsan, a stage2 ubsan-enabled build Differential Revision: https://reviews.llvm.org/D35735 https://bugs.llvm.org/show_bug.cgi?id=33881 llvm-svn: 309007
* [StaticAnalyzer] Completely unrolling specific loops with known bound optionPeter Szecsi2017-07-2510-2/+459
| | | | | | | | | | | | | | | | | This feature allows the analyzer to consider loops to completely unroll. New requirements/rules (for unrolling) can be added easily via ASTMatchers. Right now it is hidden behind a flag, the aim is to find the correct heuristic and create a solution which results higher coverage % and more precise analysis, thus can be enabled by default. Right now the blocks which belong to an unrolled loop are marked by the LoopVisitor which adds them to the ProgramState. Then whenever we encounter a CFGBlock in the processCFGBlockEntrance which is marked then we skip its investigating. That means, it won't be considered to be visited more than the maximal bound for visiting since it won't be checked. llvm-svn: 309006
* Revert "This patch enables the usage of constant Enum identifiers within ↵Eric Christopher2017-07-252-71/+24
| | | | | | | | Microsoft style inline assembly statements." This reverts commit r308966. llvm-svn: 309005
* Revert "This patch enables the usage of constant Enum identifiers within ↵Eric Christopher2017-07-254-85/+15
| | | | | | | | Microsoft style inline assembly statements." as it is causing msan failures. This reverts commits r308985 and r308965 llvm-svn: 309004
* Attempt to fix lld tests on Windows after 308998.Nico Weber2017-07-251-9/+0
| | | | | | | | The test used /manifestinput: without /manifest:embed, which isn't actually supported. Just remove this part of the test for now; if it's important to check this the llvm-readobj part should be extended to check this. llvm-svn: 309002
* [PowerPC] Pretty-print CR bits the way the binutils disassembler doesNemanja Ivanovic2017-07-257-37/+56
| | | | | | | | | This patch just adds printing of CR bit registers in a more human-readable form akin to that used by the GNU binutils. Differential Revision: https://reviews.llvm.org/D31494 llvm-svn: 309001
* Cleanup: __kmp_env_* variablesJonathan Peyton2017-07-254-44/+35
| | | | | | | | | | Removed unused __kmp_env_* variables. Also clangified other people's code. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D35808 llvm-svn: 309000
* Only scan global sections containing data in LSan on darwinFrancis Ricci2017-07-254-7/+40
| | | | | | | | | | | | | | | | | | | | Summary: __DATA segments on Darwin contain a large number of separate sections, many of which cannot actually contain pointers, and contain const values or objc metadata. Not scanning sections which cannot contain pointers significantly improves performance. On a medium-sized (~4000 files) internal project, I saw a speedup of about 30% in standalone LSan's execution time (30% improvement in the time spent running LSan, not the total program time). Reviewers: kcc, kubamracek, alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35432 llvm-svn: 308999
* lld: only write .manifest files if /manifest is passed, PR33925Nico Weber2017-07-254-11/+28
| | | | | | | | | Also emit an error if /manifestinput: is used without /manifest:embed. Increases compatibility with link.exe https://reviews.llvm.org/D35842 llvm-svn: 308998
* Introduce -nostdlib++ flag to disable linking the C++ standard library.Nico Weber2017-07-2523-51/+81
| | | | | | | | | | | | | | | Projects that want to statically link their own C++ standard library currently need to pass -nostdlib or -nodefaultlibs, which also disables linking of the builtins library, -lm, and so on. Alternatively, they could use `clang` instead of `clang++`, but that already disables implicit addition of -lm on some toolchains. Add a dedicated flag -nostdlib++ that disables just linking of libc++ / libstdc++. This is analogous to -nostdinc++. https://reviews.llvm.org/D35780 llvm-svn: 308997
* [coroutines] Add serialization/deserialization of coroutinesGor Nishanov2017-07-256-30/+190
| | | | | | | | | | | | Reviewers: rsmith Reviewed By: rsmith Subscribers: EricWF, cfe-commits Differential Revision: https://reviews.llvm.org/D35383 llvm-svn: 308996
* [PowerPC] - Recommit r304907 now that the issue has been fixedNemanja Ivanovic2017-07-256-6/+593
| | | | | | | This is just a recommit since the issue that the commit exposed is now resolved. llvm-svn: 308995
* [docs] Fix a typo: iteratation -> iterationStephen Hines2017-07-251-1/+1
| | | | | | | | | | | | Reviewers: dgross Reviewed By: dgross Subscribers: dgross, llvm-commits Differential Revision: https://reviews.llvm.org/D35822 llvm-svn: 308994
* [TypeSystem] Guard the global `ASTSourceMap` with a mutexSean Callanan2017-07-251-4/+12
| | | | | | | | | | | | | | | | | s_source_map in ClangExternalASTSourceCommon.cpp is unguarded and therefore can break in multithreaded conditions. This can cause crashes in particular if multiple targets are being set up at once. This patch wraps s_source_map in a function that ensures exclusivity, and makes every user of it use that function instead. <rdar://problem/33429774> lldb crashes after "resume_off" Differential Revision: https://reviews.llvm.org/D35083 llvm-svn: 308993
* Fix unused variable warning with MemoryMappedSegment private dataFrancis Ricci2017-07-251-0/+2
| | | | llvm-svn: 308992
* [analyzer] Add diagnostic text for generalized refcount annotations.Devin Coughlin2017-07-254-18/+33
| | | | | | | | | | | | | | | Add a 'Generalized' object kind to the retain-count checker and suitable generic diagnostic text for retain-count diagnostics involving those objects. For now the object kind is introduced in summaries by 'annotate' attributes. Once we have more experience with these annotations we will propose explicit attributes. Patch by Malhar Thakkar! Differential Revision: https://reviews.llvm.org/D35613 llvm-svn: 308990
* [X86][CGP] Reduce memcmp() expansion to 2 load pairs (PR33914)Simon Pilgrim2017-07-253-1311/+177
| | | | | | | | | | | | D35067/rL308322 attempted to support up to 4 load pairs for memcmp inlining which resulted in regressions for some optimized libc memcmp implementations (PR33914). Until we can match these more optimal cases, this patch reduces the memcmp expansion to a maximum of 2 load pairs (which matches what we do for -Os). This patch should be considered for the 5.0.0 release branch as well Differential Revision: https://reviews.llvm.org/D35830 llvm-svn: 308986
* This test case is causing all PPC and SystemZ bots to remain red.Nemanja Ivanovic2017-07-251-1/+1
| | | | | | | | | | Notifying the author via Diffusion did not yield any answer. Therefore, I'm adding the missing triple. I have no idea if this is the intended triple, but it seems to fit the bill and should turn the bots back to green. If the intended triple is a different one, please feel free to change it but I need make this change to turn the bots back to green now. llvm-svn: 308985
* Revert "[compiler-rt] Include thread ID into sanitizers logs"Vitaly Buka2017-07-252-27/+4
| | | | | | | | This improvement introduce additional dependencies on sandboxed environments. This reverts commit r308637. llvm-svn: 308984
* [DAG] Move DAGCombiner::GetDemandedBits to SelectionDAGSimon Pilgrim2017-07-253-62/+66
| | | | | | | | This patch moves the DAGCombiner::GetDemandedBits function to SelectionDAG::GetDemandedBits as a first step towards making it easier for targets to get to the source of any demanded bits without the limitations of SimplifyDemandedBits. Differential Revision: https://reviews.llvm.org/D35841 llvm-svn: 308983
* [ScopInfo] Rename ScopStmt::contains(BB) to represents(BB). NFC.Michael Kruse2017-07-254-7/+7
| | | | | | | | | | | In future, there will be no more a 1:1 correspondence between statements and basic blocks, the name `contains` does not correctly capture their relationship. A BB may infact comprise of multiple statements; hence we describe a statement 'representing' a basic block. Differential Revision: https://reviews.llvm.org/D35838 llvm-svn: 308982
* [X86] Regenerate test.Simon Pilgrim2017-07-251-3/+5
| | | | llvm-svn: 308981
* [X86] Regenerate test with broadcast comments.Simon Pilgrim2017-07-251-3/+3
| | | | llvm-svn: 308980
* [OPENMP] Codegen for 'task_reduction' clause.Alexey Bataev2017-07-259-42/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added codegen for taskgroup directive with task_reduction clause. ``` <body> ``` The next code is emitted: ``` %struct.kmp_task_red_input_t red_init[n]; void *td; call void @__kmpc_taskgroup(%ident_t id, i32 gtid) ... red_init[i].shar = &<item>; red_init[i].size = sizeof(<item>); red_init[i].init = (void*)initializer_function; red_init[i].fini = (void*)destructor_function; red_init[i].comb = (void*)combiner_function; red_init[i].flags = flags; ... td = call i8* @__kmpc_task_reduction_init(i32 gtid, i32 n, i8* (void*)red_init); call void @__kmpc_end_taskgroup(%ident_t id, i32 gtid) void initializer_function(i8* priv) { *(<type>*)priv = <red_init>; ret void; } void destructor_function(i8* priv) { (<type>*)priv->~(); ret void; } void combiner_function(i8* inout, i8* in) { *(<type>*)inout = *(<type>*)inout <red_id> *(<type>*)in; ret void; } ``` llvm-svn: 308979
* [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removedFedor Sergeev2017-07-252-8/+90
| | | | | | | | | | | | | | | | | | | Summary: Some SPARC TLS relocations were applying nontrivial adjustments to zero value, leading to unexpected non-zero values in ELF and then Solaris linker failures. Getting rid of these adjustments. Fixes PR33825. Reviewers: rafael, asb, jyknight Subscribers: joerg, jyknight, llvm-commits Differential Revision: https://reviews.llvm.org/D35567 llvm-svn: 308978
* Add address ranges for individual macho sections on darwinFrancis Ricci2017-07-253-12/+82
| | | | | | | | | | | | | | | Summary: This is a re-upload of the reverted commit r308644. It has changed quite a bit to reflect post-commit comments by kcc, so I'm re-uploading as a new review. Reviewers: kubamracek, alekseyshl, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35799 llvm-svn: 308977
* [IslAst] Untangle IslAst lit-testcases from specifics of the legacy-PMPhilip Pfaffe2017-07-256-12/+4
| | | | | | | | | | | | | | | | | | | | Summary: This consists instances of two changes: - Accept any order of checks for a specific loop form, that appear in different order in the new vs legacy-PM. - Remove checks for specific regions. Reviewers: grosser Reviewed By: grosser Subscribers: pollydev, llvm-commits Tags: #polly Differential Revision: https://reviews.llvm.org/D35837 llvm-svn: 308976
* [clang-tidy] Fixup clang-apply-replacements/invalid-files testKevin Funk2017-07-251-1/+2
| | | | llvm-svn: 308975
* [clang-tidy] clang-apply-replacements: Don't insert null entryKevin Funk2017-07-253-12/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: [clang-tidy] clang-apply-replacements: Don't insert null entry Fix crash when running clang-apply-replacements on YML files which contain an invalid file path. Make sure we never add a nullptr into the map. The previous code started adding nullptr to the map after the first warnings via errs() has been emitted. Backtrace: ``` Starting program: /home/kfunk/devel/build/llvm/bin/clang-apply-replacements /tmp/tmpIqtp7m [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Described file '.moc/../../../../../../src/qt5.8/qtremoteobjects/src/remoteobjects/qremoteobjectregistrysource_p.h' doesn't exist. Ignoring... ... Program received signal SIGSEGV, Segmentation fault. main (argc=<optimized out>, argv=<optimized out>) at /home/kfunk/devel/src/llvm/tools/clang/tools/extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp:262 (gdb) p FileAndReplacements.first $1 = (const clang::FileEntry *) 0x0 (gdb) ``` Added tests. Before patch: ``` ******************** TEST 'Clang Tools :: clang-apply-replacements/invalid-files.cpp' FAILED ******************** Script: -- mkdir -p /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/Inputs/invalid-files clang-apply-replacements /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/Inputs/invalid-files ls -1 /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/Inputs/invalid-files | FileCheck /home/kfunk/devel/src/llvm/tools/clang/tools/extra/test/clang-apply-replacements/invalid-files.cpp --check-prefix=YAML -- Exit Code: 139 Command Output (stderr): -- Described file 'idonotexist.h' doesn't exist. Ignoring... /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply-replacements/Output/invalid-files.cpp.script: line 4: 9919 Segmentation fault clang-apply-replacements /home/kfunk/devel/build/llvm/tools/clang/tools/extra/test/clang-apply- replacements/Output/Inputs/invalid-files -- ``` After Patch: ``` PASS: Clang Tools :: clang-apply-replacements/invalid-files.cpp (5 of 6) ``` Reviewers: alexfh, yawanng Reviewed By: alexfh Subscribers: cfe-commits, klimek, JDevlieghere, xazax.hun Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D35194 llvm-svn: 308974
* [ScopInfo] Fix assertion for PHIs not in a region stmts entry.Michael Kruse2017-07-252-1/+63
| | | | | | | A PHI node within a region statement is legal, but does not have a MemoryKind::PHI access. llvm-svn: 308973
* X86 Asm uses assertions instead of proper diagnostic. This patch fixes that.Andrew V. Tischenko2017-07-254-24/+151
| | | | | | Differential Revision: https://reviews.llvm.org/D35115 llvm-svn: 308972
OpenPOWER on IntegriCloud