summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [LLVM][Alignment] Make functions using log of alignment explicitGuillaume Chatelet2019-09-0561-238/+250
| | | | | | | | | | | | | | | | | | | | | Summary: This patch renames functions that takes or returns alignment as log2, this patch will help with the transition to llvm::Align. The renaming makes it explicit that we deal with log(alignment) instead of a power of two alignment. A few renames uncovered dubious assignments: - `MirParser`/`MirPrinter` was expecting powers of two but `MachineFunction` and `MachineBasicBlock` were using deal with log2(align). This patch fixes it and updates the documentation. - `MachineBlockPlacement` exposes two flags (`align-all-blocks` and `align-all-nofallthru-blocks`) supposedly interpreted as power of two alignments, internally these values are interpreted as log2(align). This patch updates the documentation, - `MachineFunctionexposes` exposes `align-all-functions` also interpreted as power of two alignment, internally this value is interpreted as log2(align). This patch updates the documentation, Reviewers: lattner, thegameg, courbet Subscribers: dschuff, arsenm, jyknight, dylanmckay, sdardis, nemanjai, jvesely, nhaehnle, javed.absar, hiraditya, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, dexonsmith, PkmX, jocewei, jsji, Jim, s.egerton, llvm-commits, courbet Tags: #llvm Differential Revision: https://reviews.llvm.org/D65945 llvm-svn: 371045
* [libclang] Refactored SharedParsedRegionsStorageDmitri Gribenko2019-09-051-24/+23
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Removed the `PPRegionSetTy` typedef because it is only used 3 times, and obscures code more than it helps. Renamed SharedParsedRegionsStorage to ThreadSafeParsedRegions, because that better reflects the reason for this type to exist. Replaced the `copyTo()` method that had an out parameter with a getter. Renamed the `merge()` method to `addParsedRegions()`. Renamed `ParsedSrcLocationsTracker::ParsedRegions` to `ParsedRegionsSnapshot`, which better reflects its role. Subscribers: arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67077 llvm-svn: 371041
* Fix time-trace breaking flame graph assumptionsRussell Gallop2019-09-051-12/+37
| | | | | | | | | | | | | | | | | | | -ftime-trace could break flame-graph assumptions on Windows, with an inner scope overrunning outer scopes. This was due to the way that times were truncated. Changed this so time_points for the flame-graph are truncated instead of durations, preserving the relative order of event starts and ends. I have tried to retain the extra precision for the totals, which count thousands or millions of events. Added assert to check this property holds in future. Fixes PR43043 Differential Revision: https://reviews.llvm.org/D66411 llvm-svn: 371039
* [clangd][vscode] Add a flag to enable semantic highlighting in clangdHaojian Wu2019-09-052-4/+11
| | | | | | | | | | | | Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67096 llvm-svn: 371038
* [clangd][vscode] Make SemanticHighlightingFeature more self-contained.Haojian Wu2019-09-052-7/+16
| | | | | | | | | | | | | | | | | Summary: so that we don't have too many usage from the client side (just a single occurrance for register), this also aligns with how other builtin feature being implemented in vscode. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67165 llvm-svn: 371036
* Win: handle \\?\UNC\ prefix in realPathFromHandle (PR43204)Hans Wennborg2019-09-051-6/+12
| | | | | | | | | | | | | | | | | | | | After r361885, realPathFromHandle() ends up getting called on the working directory on each Clang invocation. This unveiled that the code didn't work for paths on network shares. For example, if one maps the local dir c:\src\tmp to x: net use x: \\localhost\c$\tmp and run e.g. "clang -c foo.cc" in x:\, realPathFromHandle will get \\?\UNC\localhost\c$\src\tmp\ back from GetFinalPathNameByHandleW, and would strip off the initial \\?\ prefix, ending up with a path that doesn't work. This patch makes the prefix stripping a little smarter to handle this case. Differential revision: https://reviews.llvm.org/D67166 llvm-svn: 371035
* [lib/ObjectYAML] - Cleanup the private interface of ELFState<ELFT>. NFCI.George Rimar2019-09-051-23/+13
| | | | | | | | | | | In D62809 I accidentally added "ELFState<ELFT> &State" as the first parameter to two methods. There is no reason for having that. I removed this argument and also moved finalizeStrings declaration to remove an excessive 'private:' tag. Differential revision: https://reviews.llvm.org/D67157 llvm-svn: 371033
* [Sema] Refactor LookupVisibleDecls. NFCIlya Biryukov2019-09-051-272/+289
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: We accumulated some configuration parameters for LookupVisibleDecls that are being passed unchanged to recursive calls, e.g. LoadExternal and IncludeDependentBases. At the same time, there is a bunch of parameters that can change in the recursive invocations. It is hard to tell the difference between those groups, making the code hard to follow. This change introduces a helper struct and factors out the non-changing bits into fields, making recursive calls in the implementation code easier to read. Reviewers: sammccall Reviewed By: sammccall Subscribers: riccibruno, doug.gregor, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65752 llvm-svn: 371032
* Recommit r371023 "[lib/ObjectYAML] - Stop calling error(1) when mapping the ↵George Rimar2019-09-052-6/+5
| | | | | | | | | | | | | | | st_other field of a symbol." Fix: added missing return "return 0;" Original commit message: This eliminates one of the error(1) call in this lib. It is different from the others because happens on a fields mapping stage and can be easily fixed. Differential revision: https://reviews.llvm.org/D67150 llvm-svn: 371030
* [lldb][NFC] Stabilize gui/basic test by waiting on promptRaphael Isemann2019-09-051-0/+1
| | | | | | We should wait on the GUI to exit before tearing down the test. llvm-svn: 371028
* Revert r361885 "[Driver] Fix -working-directory issues"Hans Wennborg2019-09-055-44/+35
| | | | | | | | | | | | | | | | | | | | | | | This made clang unable to open files using relative paths on network shares on Windows (PR43204). On the bug it was pointed out that createPhysicalFileSystem() is not terribly mature, and using it is risky. Reverting for now until there's a clear way forward. > Currently the `-working-directory` option does not actually impact the working > directory for all of the clang driver, it only impacts how files are looked up > to make sure they exist. This means that that clang passes the wrong paths > to -fdebug-compilation-dir and -coverage-notes-file. > > This patch fixes that by changing all the places in the driver where we convert > to absolute paths to use the VFS, and then calling setCurrentWorkingDirectory on > the VFS. This also changes the default VFS for `Driver` to use a virtualized > working directory, instead of changing the process's working directory. > > Differential Revision: https://reviews.llvm.org/D62271 This also revertes the part of r369938 which checked that -working-directory works. llvm-svn: 371027
* Revert r371023 "[lib/ObjectYAML] - Stop calling error(1) when mapping the ↵George Rimar2019-09-051-3/+5
| | | | | | | | st_other field of a symbol." (2) Forgot to revert the cpp file. llvm-svn: 371025
* Revert r371023 "[lib/ObjectYAML] - Stop calling error(1) when mapping the ↵George Rimar2019-09-051-1/+1
| | | | | | | | | | | st_other field of a symbol." It broke BBots: http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/36387/steps/build_Lld/logs/stdio http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/17117/steps/test/logs/stdio llvm-svn: 371024
* [lib/ObjectYAML] - Stop calling error(1) when mapping the st_other field of ↵George Rimar2019-09-052-6/+4
| | | | | | | | | | | | a symbol. This eliminates one of the error(1) call in this lib. It is different from the others because happens on a fields mapping stage and can be easily fixed. Differential revision: https://reviews.llvm.org/D67150 llvm-svn: 371023
* [clang-tidy] Fix definitions in headers check to respect qualifiersKadir Cetinkaya2019-09-052-2/+13
| | | | | | | | | | | | | | | | Summary: The check was generating a fix without taking qualifiers in return type into account. This patch changes the insertion location to be before qualifers. Reviewers: gribozavr Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67213 llvm-svn: 371022
* Rename of constants in ASTImporterVisibilityTest. NFC.Balazs Keri2019-09-051-47/+55
| | | | | | | | | | | | | | Reviewers: martong, a.sidorin, shafik Reviewed By: shafik Subscribers: shafik, rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67174 llvm-svn: 371021
* [dotest] Remove top-level MakefilePavel Labath2019-09-051-32/+0
| | | | | | | | This appears to be a really ancient way of running the test suite. It is also completely disfunctional now, and probably has been for a long time. llvm-svn: 371020
* [dotest] Centralize initialization commands even morePavel Labath2019-09-054-28/+21
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: In r367234 we introduced a central place to hold the set up commands for the various ways we have of launching lldb. However, a number of commands still remained outside of that. This patch moves the remaining set up commands into this function, which allows us to remove manual clang module path setting code in TestBatchMode. One unfortunate victim of this approach is TestSTTYBeforeAndAfter which, due to how it launches lldb (pexpect->expect->lldb), fails get the quoting right. It would be possible to fix the quoting there, it would be a bit icky, and none of the commands in this list are really relevant for what this test is doing, so I just remove the commands outright. Reviewers: JDevlieghere, jankratochvil Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D67173 llvm-svn: 371019
* Obliterate LLDB_CONFIGURATION_BUILDANDINTEGRATIONPavel Labath2019-09-053-20/+0
| | | | | | | | | | | | | | Summary: With the XCode project gone, there doesn't seem to be anything setting this macro anymore -- and the macro wasn't doing much anyway. Reviewers: jingham, sgraenitz Subscribers: emaste, lldb-commits Differential Revision: https://reviews.llvm.org/D66742 llvm-svn: 371018
* Breakpad: Basic support for STACK WIN unwindingPavel Labath2019-09-055-27/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch makes it possible to unwind via breakpad STACK WIN records. It is "basic" because two important features are missing: - support for the .raSearch keyword - support for multiple STACK WIN records within a single function Right now, we just reject the .raSearch records, and always pick the first record for the whole function SymbolFileBreakpad, and so I think it can serve as a good example of what is needed of the symbol file and unwinding machinery to make this work. However, it is already useful for unwinding in some situations, and it sets up the general framework for the parsing of these kinds of records, which reduces the size of the followup patches implementing the two other components. Reviewers: amccarth, rnk, markmentovai Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D67067 llvm-svn: 371017
* [DWARF] Fix referencing Range List Tables from CUs for DWARF64.Igor Kudrin2019-09-053-11/+225
| | | | | | | | | | | | | | As DW_AT_rnglists_base points after the header and headers have different sizes for DWARF32 and DWARF64, we have to use the format of the CU to adjust the offset correctly in order to extract the referenced range list table. The patch also changes the type of RangeSectionBase because in DWARF64 it is 8-bytes long. Differential Revision: https://reviews.llvm.org/D67098 llvm-svn: 371016
* [dotest] Delete trivial inline test makefilesPavel Labath2019-09-0530-77/+0
| | | | | | inline tests are able to generate these automatically llvm-svn: 371015
* [DWARF] Support DWARF64 in DWARFListTableHeader.Igor Kudrin2019-09-057-44/+99
| | | | | | | | This enables 64-bit DWARF support for parsing range and location list tables. Differential Revision: https://reviews.llvm.org/D66643 llvm-svn: 371014
* Align output segments correctlyRui Ueyama2019-09-052-1/+25
| | | | | | | | | | | | | | | | Previously, segments were aligned according to their first section's alignment requirements. That was not correct, but segments are also aligned to a page boundary, and a page boundary is usually much larger than a section alignment requirement, so no one noticed this bug before. Now, lld has --nmagic option which sets maxPageSize to 1 to effectively disable page alignment, which reveals the issue. Fixes https://bugs.llvm.org/show_bug.cgi?id=43212 Differential Revision: https://reviews.llvm.org/D67152 llvm-svn: 371013
* AMDGPU: Add builtins for is_shared/is_privateMatt Arsenault2019-09-055-13/+53
| | | | llvm-svn: 371010
* AMDGPU: Add intrinsics for address space identificationMatt Arsenault2019-09-0512-1/+443
| | | | | | | The library currently uses ptrtoint and directly checks the queue ptr for this, which counts as a pointer capture. llvm-svn: 371009
* AMDGPU/GlobalISel: Restore insert point when getting apertureMatt Arsenault2019-09-052-33/+39
| | | | | | Avoids SSA violations in a future patch. llvm-svn: 371008
* AMDGPU/GlobalISel: Fix placeholder value used for addrspacecastMatt Arsenault2019-09-052-38/+88
| | | | llvm-svn: 371007
* AMDGPU/GlobalISel: Fix assert on load from constant addressMatt Arsenault2019-09-052-4/+31
| | | | llvm-svn: 371006
* [mir-canon][NFC] Adding -verify-machineinstrs to mir-canon tests.Puyan Lotfi2019-09-052-9/+10
| | | | | | | In the review process for some of the refactoring of MIRCanonicalizationPass it was noted that some of the tests didn't have verifier enabled. Enabling here. llvm-svn: 371005
* [c++20] Fix some ambiguities in our mangling of lambdas with explicitRichard Smith2019-09-056-49/+200
| | | | | | | | | | | | | template parameters. This finishes the implementation of the proposal described in https://github.com/itanium-cxx-abi/cxx-abi/issues/31. (We already implemented the <lambda-sig> extensions, but didn't take them into account when computing mangling numbers, and didn't deal properly with expanded parameter packs, and didn't disambiguate between different levels of template parameters in manglings.) llvm-svn: 371004
* Revert "Revert "[builtins] Rounding mode support for addxf3/subxf3""Yi Kong2019-09-0514-17/+261
| | | | | | | | Test failure fixed. This reverts commit e204d244badb2e9765a1020f41c773f63da208f4. llvm-svn: 371003
* [analyzer] scan-build: handle --sysroot=/path in addition to --sysroot /path.Artem Dergachev2019-09-051-5/+8
| | | | | | | | | | | Current code assumes flags in CompilerLinkerOptionMap don't use =, which isn't always true. Patch by Chris Laplante! Differential Revision: https://reviews.llvm.org/D66569 llvm-svn: 371002
* Reformat the beginning of the testing doc to make clear how to run all the ↵Marshall Clow2019-09-051-5/+8
| | | | | | tests. llvm-svn: 371001
* Use -mtriple to fix AMDGPU test sensitive to object file formatReid Kleckner2019-09-051-3/+3
| | | | | | | GOTPCREL32 doesn't exist on COFF, so it isn't used when this test runs on Windows. llvm-svn: 371000
* [Disassembler] Simplify a few methods (2/2) (NFC)Jonas Devlieghere2019-09-041-52/+62
| | | | | | | Use early returns to highlight preconditions and make the code easier to follow. llvm-svn: 370998
* [AArch64][GlobalISel] Teach AArch64CallLowering to handle basic sibling callsJessica Paquette2019-09-047-9/+321
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for basic sibling call lowering in AArch64. The intent here is to only handle tail calls which do not change the ABI (hence, sibling calls.) At this point, it is very restricted. It does not handle - Vararg calls. - Calls with outgoing arguments. - Calls whose calling conventions differ from the caller's calling convention. - Tail/sibling calls with BTI enabled. This patch adds - `AArch64CallLowering::isEligibleForTailCallOptimization`, which is equivalent to the same function in AArch64ISelLowering.cpp (albeit with the restrictions above.) - `mayTailCallThisCC` and `canGuaranteeTCO`, which are identical to those in AArch64ISelLowering.cpp. - `getCallOpcode`, which is exactly what it sounds like. Tail/sibling calls are lowered by checking if they pass target-independent tail call positioning checks, and checking if they satisfy `isEligibleForTailCallOptimization`. If they do, then a tail call instruction is emitted instead of a normal call. If we have a sibling call (which is always the case in this patch), then we do not emit any stack adjustment operations. When we go to lower a return, we check if we've already emitted a tail call. If so, then we skip the return lowering. For testing, this patch - Adds call-translator-tail-call.ll to test which tail calls we currently lower, which ones we don't, and which ones we shouldn't. - Updates branch-target-enforcement-indirect-calls.ll to show that we fall back as expected. Differential Revision: https://reviews.llvm.org/D67189 llvm-svn: 370996
* [Disassembler] Simplify a few methods (NFC)Jonas Devlieghere2019-09-043-122/+132
| | | | | | | Use early returns to highlight preconditions and make the code easier to follow. llvm-svn: 370994
* For PR43213, track whether template parameters are implicit throughRichard Smith2019-09-042-0/+10
| | | | | | | template instantiation so we know whether to mangle them in lambda-expressions. llvm-svn: 370991
* gn build: Merge r370985Nico Weber2019-09-041-0/+1
| | | | llvm-svn: 370988
* [www] Fix hyperlink syntax in attribute reference.Richard Smith2019-09-041-1/+1
| | | | llvm-svn: 370987
* [www] Update attribute reference for 'constinit'.Richard Smith2019-09-042-3/+11
| | | | llvm-svn: 370986
* [mir-canon][NFC] Move MIR vreg renaming code to separate file for better reuse.Puyan Lotfi2019-09-044-337/+436
| | | | | | | | | | | | | Moving MIRCanonicalizerPass vreg renaming code to MIRVRegNamerUtils so that it can be reused in another pass (ie planing to write a standalone mir-namer pass). I'm going to write a mir-namer pass so that next time someone has to author a test in MIR, they can use it to cleanup the naming and make it more readable by having the numbered vregs swapped out with named vregs. Differential Revision: https://reviews.llvm.org/D67114 llvm-svn: 370985
* [test] Escape path to match the literal stringJonas Devlieghere2019-09-041-1/+1
| | | | | | This test was failing when you had things like `+` in your build path. llvm-svn: 370983
* Diagnose _Atomic as a C11 extension.Aaron Ballman2019-09-044-65/+86
| | | | llvm-svn: 370982
* [DebugInfo] Emit DW_TAG_enumeration_type for referenced global enumerator.Yuanfang Chen2019-09-042-10/+25
| | | | | | | | | | | | | | | | | This essentially reverts changes from r361400 while keeping behavior for CodeView. Reviewers: akhuang, rnk, probinson Reviewed by: rnk Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67141 llvm-svn: 370981
* AMDGPU/GlobalISel: Select G_BITREVERSEMatt Arsenault2019-09-044-1/+86
| | | | llvm-svn: 370980
* GlobalISel: Add basic legalization for G_BITREVERSEMatt Arsenault2019-09-043-1/+177
| | | | llvm-svn: 370979
* [Attributor][Stats] Use the right statistics macroJohannes Doerfert2019-09-041-2/+2
| | | | llvm-svn: 370976
* [Attributor][Fix] Make sure we do not delete live codeJohannes Doerfert2019-09-044-10/+78
| | | | | | | | | | | | | | Summary: Liveness needs to mark edges, not blocks as dead. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67191 llvm-svn: 370975
OpenPOWER on IntegriCloud