| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Ofast deprecation clarifications (#101005) Following up on the RFC discussion, this is clarifying that the main purpose and effect of the -Ofast deprecation is to discourage its usage and that everything else is more or less open for discussion, e.g. there is no timeline yet for removal. --------- Co-authored-by: Aaron Ballman <aaron@aaronballman.com> (cherry picked from commit 48d4d4b641702bf6db03a1bac73b7e13dea28349) | 1 年前 | |
[clang][docs][dataflow] Added an introduction to dataflow analysis This documentation supports the dataflow analysis framework (see "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev). Since the implementation of the framework has not been committed yet, right now the doc describes dataflow analysis in general. Since this is the first markdown document in clang/docs, I added support for Markdown to clang/docs/conf.py in the same way as it is done in llvm/docs. Reviewed By: xazax.hun Differential Revision: https://reviews.llvm.org/D114231 | 4 年前 | |
Correct confusing headers in HLSLDocs (#100017) AvailabilityDiagnostics.rst and ExpectedDifferences.rst both had multiple headers that were perceived to be the "top-level". In AvailabilityDiagnostics.rst two headers had both over and underlines. The second was the "Examples" section so it showed up in the top level HLSL docs. The overline is removed here so it's clear it's a subheader. In ExpectedDifferences.rst, the first header had no overline, so a few headers that looked the same were included. The overline is added to the top header to make clear that it's the main header. | 1 年前 | |
[analyzer] Split TaintPropagation checker into reporting and modeling checkers (#98157) Taint propagation is a a generic modeling feature of the Clang Static Analyzer which many other checkers depend on. Therefore GenericTaintChecker is split into a TaintPropagation modeling checker and a GenericTaint reporting checker. | 1 年前 | |
| 1 年前 | ||
[amdgpu] start documenting amdgpu support by clang Reviewed by: Matt Arsenault, Johannes Doerfert, Jacob Lambert Differential Revision: https://reviews.llvm.org/D154133 | 2 年前 | |
[APINotes] Update the documentation with new features This adds the documentation for a few recently added Clang API Notes features: C++ namespaces, SwiftImportAs and SwiftCopyable. --------- Co-authored-by: Saleem Abdulrasool <compnerd@compnerd.org> | 2 年前 | |
[Sanitizer][Docs] Reformat CMake invocation in docs This was based on post-commit reviewer feedback in #68636. | 2 年前 | |
[ARC][Documentation] Explicitly state that messaging weak objects keeps a strong reference during call lifetime (#72169) rdar://113636046 | 2 年前 | |
[Documentation][Blocks ABI] Fix typoed integer (#65688) Fix an integer value in the prose to match the rest of the content. | 2 年前 | |
Documentation: use monospaced font in BlockLanguageSpec, and fix a link to this document llvm-svn: 170762 | 13 年前 | |
[BoundsSafety][doc] Make it clear that the feature is work-in-progress (#95964) The -fbounds-safety feature is not available yet and the implementation is still in progress, which will be guarded by -fexperimental-bounds-safety. To avoid the confusion, we're making it more explicit that the feature is not available yet and the document only describes the model. | 1 年前 | |
[BoundsSafety][doc] Make it clear that the feature is work-in-progress (#95964) The -fbounds-safety feature is not available yet and the implementation is still in progress, which will be guarded by -fexperimental-bounds-safety. To avoid the confusion, we're making it more explicit that the feature is not available yet and the document only describes the model. | 1 年前 | |
[clang] Revise IDE folder structure (#89743) Update the folder titles for targets in the monorepository that have not seen taken care of for some time. These are the folders that targets are organized in Visual Studio and XCode ( set_property(TARGET <target> PROPERTY FOLDER "<title>")) when using the respective CMake's IDE generator. * Ensure that every target is in a folder * Use a folder hierarchy with each LLVM subproject as a top-level folder * Use consistent folder names between subprojects * When using target-creating functions from AddLLVM.cmake, automatically deduce the folder. This reduces the number of set_property/set_target_property, but are still necessary when add_custom_target, add_executable, add_library, etc. are used. A LLVM_SUBPROJECT_TITLE definition is used for that in each subproject's root CMakeLists.txt. | 2 年前 | |
[clang docs] Minor fix in ClangCheck.rst Reviewers: djasper, rengolin Subscribers: Eugene.Zelenko Tags: #clang-c Differential Revision: https://reviews.llvm.org/D26484 llvm-svn: 286846 | 9 年前 | |
Add txtpb to the list of supported TextProto extensions (#88355) According to https://protobuf.dev/reference/protobuf/textformat-spec/#text-format-files, txtpb is the canonical extension Co-authored-by: Jing Wang <99jingw@gmail.com> | 2 年前 | |
[clang-format] Add SpacesInParensOption for filtering repeated parens (#77522) The __attribute((specifier-list)) currently is formatted based on the SpacesInParensOptions.Other (previously, SpacesInParentheses). This change allows finer control over addition of spaces between the consecutive parens, and between the inner parens and the list of attribute specifiers. Differential Revision: https://reviews.llvm.org/D155529 This is migrated from Phabricator, see more discussion there. --------- Co-authored-by: Owen Pan <owenpiano@gmail.com> | 1 年前 | |
[RemarkUtil] Refactor llvm-remarkutil to include size-diff This change follows from https://reviews.llvm.org/D156416 We include llvm-remark-size-diff as a part of llvm-remarkutil under a subcommand size-diff. Differential Revision: https://reviews.llvm.org/D156515 | 2 年前 | |
[LinkerWrapper] Add an overriding option for debugging (#91984) Summary: One of the downsides of the linker wrapper is that it made debugging more difficult. It is very powerful in that it can resolve a lot of input matching and library handling that could not be done before. However, the old method allowed users to simply copy-paste the script files to modify the output and test it. This patch attempts to make it easier to debug changes by letting the user override all the linker inputs. That is, we provide a user-created binary that is treated like the final output of the device link step. The intended use-case is for using -save-temps to get some IR, then modifying the IR and sticking it back in to see if it exhibits the old failures. | 2 年前 | |
[Clang] Introduce 'clang-nvlink-wrapper' to work around 'nvlink' (#96561) Summary: The clang-nvlink-wrapper is a utility that I removed awhile back during the transition to the new driver. This patch adds back in a new, upgraded version that does LTO + archive linking. It's not an easy choice to reintroduce something I happily deleted, but this is the only way to move forward with improving GPU support in LLVM. While NVIDIA provides a linker called 'nvlink', its main interface is very difficult to work with. It does not provide LTO, or static linking, requires all files to be named a non-standard .cubin, and rejects link jobs that other linkers would be fine with (i.e empty). I have spent a great deal of time hacking around this in the GPU libc implementation, where I deliberately avoid LTO and static linking and have about 100 lines of hacky CMake dedicated to storing these files in a format that the clang-linker-wrapper accepts to avoid this limitation. The main reason I want to re-intorudce this tool is because I am planning on creating a more standard C/C++ toolchain for GPUs to use. This will install files like the following. <install>/lib/nvptx64-nvidia-cuda/libc.a <install>/lib/nvptx64-nvidia-cuda/libc++.a <install>/lib/nvptx64-nvidia-cuda/libomp.a <install>/lib/clang/19/lib/nvptx64-nvidia-cuda/libclang_rt.builtins.a Linking in these libraries will then simply require passing -lc like is already done for non-GPU toolchains. However, this doesn't work with the currently deficient nvlink linker, so I consider this a blocking issue to massively improving the state of building GPU libraries. In the future we may be able to convince NVIDIA to port their linker to ld.lld, but for now this is the only workable solution that allows us to hack around the weird behavior of their closed-source software. This also copies some amount of logic from the clang-linker-wrapper, but not enough for it to be worthwhile to merge them I feel. In the future it may be possible to delete that handling from there entirely. | 1 年前 | |
[ClangOffloadBundler] make hipv4 and hip compatible (#91637) The distinction between the hip and hipv4 offload kinds is historically based. Originally, these designations might have indicated different versions of the code object ABI (Application Binary Interface). However, as the system has evolved, the ABI version is now embedded directly within the code object itself, making these historical distinctions irrelevant during the unbundling process. Consequently, hip and hipv4 are treated as compatible in current implementations, facilitating interchangeable handling of code objects without differentiation based on offload kind. This change streamlines code management within the ecosystem. | 2 年前 | |
[Clang][Docs] Fix typo in clang-offload-packager documentation Fixed formatting of the section violating 80-char line limit. | 2 年前 | |
[docs] Add note about interaction between clang plugins and -clear-ast-before-backend Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D120666 | 4 年前 | |
Reland "Add Documentation for Execution Results Handling in Clang-Repl (#65650)" Original commit message: " Add Documentation for Execution Results Handling in Clang-Repl (#65650) [clang-repl] Add Documentation for Execution Results Handling. This patch adds documentation for execution results handling in Clang-REPL with the below features: - Automatic Printf feature - Value Synthesis feature - Pretty Printing feature Continuing this work https://reviews.llvm.org/D156858 with this PR. I am issuing this patch on behalf of Saqib. " This reverts commit ac32d7b87f4d4b546eea96b9b722e88fdb3a5b49. The new patch resolves the layering violation by simply not trying to look if dot was installed. This is consistent with what we do other extensions. After this patch we will need sphinx.ext.graphviz extension (part of the dot package) which is available via anyway if we build the doxygen-based documentation. | 2 年前 | |
[clang-repl] Add basic documentation about clang-repl Differential revision: https://reviews.llvm.org/D138698 | 3 年前 | |
[analyzer]Add user docs rst Summary: Add user documentation page. This is an empty page atm, later patches will add the specific user documentatoins. Reviewers: dkrupp Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, gamesh411, Charusso, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64494 llvm-svn: 365639 | 6 年前 | |
[Branch-Rename] Fix some links According to the [[ https://foundation.llvm.org/docs/branch-rename/ | status of branch rename ]], the master branch of the LLVM repository is removed on 28 Jan 2021. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D95766 | 5 年前 | |
[clang][NFC] Remove trailing whitespaces and enforce it in lib, include and docs A lot of editors remove trailing whitespaces. This patch removes any trailing whitespaces and makes sure that no new ones are added. Reviewed By: erichkeane, paulkirth, #libc, philnik Spies: wangpc, aheejin, MaskRay, pcwang-thead, cfe-commits, libcxx-commits, dschuff, nemanjai, arichardson, kbarton, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, Jim, s.egerton, sameer.abuasal, apazos, luismarques, martong, frasercrmck, steakhal, luke Differential Revision: https://reviews.llvm.org/D151963 | 2 年前 | |
Update the clang and clang-tools-extra code owners files This also converts the Clang code owners file from a flat text file to an RST file that is linked in to the rest of our documentation. The RFC for this can be found at: https://discourse.llvm.org/t/rfc-proposed-changes-to-clangs-code-ownership/ Differential Revision: https://reviews.llvm.org/D132550 | 3 年前 | |
[documentation] Fix some typos This patch fixes https://github.com/llvm/llvm-project/issues/56747 Patch-By: ayushi-8102 Differential Revision: https://reviews.llvm.org/D146892 | 3 年前 | |
-fsanitize=function: support C With D148785, -fsanitize=function no longer uses C++ RTTI objects and therefore can support C. The rationale for reporting errors is C11 6.5.2.2p9: > If the function is defined with a type that is not compatible with the type (of the expression) pointed to by the expression that denotes the called function, the behavior is undefined. The mangled types approach we use does not exactly match the C type compatibility (see f(callee1) below). This is probably fine as the rules are unlikely leveraged in practice. In addition, the call is warned by -Wincompatible-function-pointer-types-strict. void callee0(int (*a)[]) {} void callee1(int (*a)[1]) {} void f(void (*fp)(int (*)[])) { fp(0); } int main() { int a[1]; f(callee0); f(callee1); // compatible but flagged by -fsanitize=function, -fsanitize=kcfi, and -Wincompatible-function-pointer-types-strict } Skip indirect call sites of a function type without a prototype to avoid deal with C11 6.5.2.2p6. -fsanitize=kcfi skips such calls as well. Reviewed By: #sanitizers, vitalybuka Differential Revision: https://reviews.llvm.org/D148827 | 3 年前 | |
[clang] Fix typos in documentation | 2 年前 | |
[documentation] Fix some typos This patch fixes https://github.com/llvm/llvm-project/issues/56747 Patch-By: ayushi-8102 Differential Revision: https://reviews.llvm.org/D146892 | 3 年前 | |
[documentation] Fix some typos This patch fixes https://github.com/llvm/llvm-project/issues/56747 Patch-By: ayushi-8102 Differential Revision: https://reviews.llvm.org/D146892 | 3 年前 | |
[DFSan] Add missing documentation for -dfsan-reaches-function-callbacks. (#84218) | 2 年前 | |
Fix duplicate word typos; NFC This revision fixes typos where there are 2 consecutive words which are duplicated. There should be no code changes in this revision (only changes to comments and docs). Do let me know if there are any undesirable changes in this revision. Thanks. | 3 年前 | |
Fx typos in documentation | 2 年前 | |
Reverted r103214. llvm-svn: 103222 | 15 年前 | |
Driver: Replace a couple of out of date terms in the docs The Job base class was removed in r241310, so replace a couple of references to it with Command. Also change another use of Job with Action, since that's the term used in the source. llvm-svn: 241327 | 10 年前 | |
[clang][NFC] Remove trailing whitespaces and enforce it in lib, include and docs A lot of editors remove trailing whitespaces. This patch removes any trailing whitespaces and makes sure that no new ones are added. Reviewed By: erichkeane, paulkirth, #libc, philnik Spies: wangpc, aheejin, MaskRay, pcwang-thead, cfe-commits, libcxx-commits, dschuff, nemanjai, arichardson, kbarton, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, Jim, s.egerton, sameer.abuasal, apazos, luismarques, martong, frasercrmck, steakhal, luke Differential Revision: https://reviews.llvm.org/D151963 | 2 年前 | |
Documentation: fix typo: stdard -> stdarg llvm-svn: 174613 | 13 年前 | |
[clang][docs] Add preliminary documentation for SPIR-V support in the HIPAMD ToolChain (#96657) This is mostly stealing from #75357, and updating it to reflect the pivot towards AMDGCN flavoured SPIR-V and the slightly different set of limitations. As we bring up more functionality it will be updated accordingly. With thanks to @yxsamliu. | 1 年前 | |
[HWASan] Mention x86_64 aliasing mode in design doc. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D98892 | 5 年前 | |
[AST] Only dump desugared type when visibly different (#65214) These are an artifact of how types are structured but serve little purpose, merely showing that the type is sugared in some way. For example, ElaboratedType's existence means struct S gets printed as 'struct S':'struct S' in the AST, which is unnecessary visual clutter. Note that skipping the second print when the types have the same string matches what we do for diagnostics, where the aka will be skipped. | 2 年前 | |
[clang] Diagnose problematic diagnostic messages (#93229) Clang has some unwritten rules about diagnostic wording regarding things like punctuation and capitalization. This patch documents those rules and adds some tablegen support for checking diagnostics follow the rules. Specifically: tablegen now checks that a diagnostic does not start with a capital letter or end with punctuation, except for the usual exceptions like proper nouns or ending with a question. Now that the code base is clean of such issues, the diagnostics are emitted as an error rather than a warning to ensure that failure to follow these rules is either addressed by an author, or a new exception is added to the checking logic. | 2 年前 | |
[clang] Fix typos in documentation (NFC) | 4 年前 | |
NFC fix documentation build by rL263015 This time I hope it will fix the build for real. llvm-svn: 263052 | 10 年前 | |
[clang][NFC] Remove trailing whitespaces and enforce it in lib, include and docs A lot of editors remove trailing whitespaces. This patch removes any trailing whitespaces and makes sure that no new ones are added. Reviewed By: erichkeane, paulkirth, #libc, philnik Spies: wangpc, aheejin, MaskRay, pcwang-thead, cfe-commits, libcxx-commits, dschuff, nemanjai, arichardson, kbarton, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, Jim, s.egerton, sameer.abuasal, apazos, luismarques, martong, frasercrmck, steakhal, luke Differential Revision: https://reviews.llvm.org/D151963 | 2 年前 | |
[clang] Don't emit type test/assume for virtual classes that should never participate in WPD Reviewed By: pcc Differential Revision: https://reviews.llvm.org/D127876 | 3 年前 | |
[Clang] Define __cpp_pack_indexing (#101956) Following the discussion on #101448 this defines __cpp_pack_indexing. Since pack indexing is currently supported in all language modes, the feature test macro is also defined in all language modes. (cherry picked from commit c65afad9c58474a784633314e945c874ed06584a) | 1 年前 | |
[lsan][docs] Clarify supported platforms Differential Revision: https://reviews.llvm.org/D100907 | 5 年前 | |
Update LibASTImporter.rst As my last commit changed the name of ImportError to ASTImportError , this section also needs to be updated so changed it. | 3 年前 | |
Update our URLs in clang doc to use https llvm-svn: 346101 | 7 年前 | |
| 2 年前 | ||
[clang][docs] Improve "Obtaining Clang" section (#71313) ## Why The documentation is written relatively to clang-llvm, not the root repository directory. However, some steps in the documentation are relative to the repository root, which is not correct. ## What Documentation steps have been modified to make them correct and outdated ones were updated. Some details: * Correct paths in documentation * Change bootstrap.py -> configure.py since bootstraping Ninja has [slightly changed](https://github.com/ninja-build/ninja/tree/master?tab=readme-ov-file#python) | 2 年前 | |
Add libClang guide Add a libclang .rst file with some code examples, going over the most important types and functions of libclang. Differential Revision: https://reviews.llvm.org/D153738 | 2 年前 | |
[NFC] Inclusive language: Remove instances of master in URLs [NFC] This patch fixes URLs containing "master". Old URLs were either broken or redirecting to the new URL. Reviewed By: #libc, ldionne, mehdi_amini Differential Revision: https://reviews.llvm.org/D113186 | 4 年前 | |
[Clang][Docs] use CommonOptionsParser::create instead of protected constructor on libTooling tutorial (NFC) (#70427) This patch fixes the code example on CommonOptionParser on https://intel.github.io/llvm-docs/clang/LibTooling.html CommonOptionParser's constructor is protected, and we can use CommonOptionParser::create instead of that. It seems like the LibASTMatcher tutorial already uses that. https://clang.llvm.org/docs/LibASTMatchersTutorial.html --------- Co-authored-by: Sirraide <aeternalmail@gmail.com> | 2 年前 | |
[Clang] [docs] [MSVC] Add sections on __forceinline and intrinsic behaviour differences between Clang and MSVC (#99426) We have had quite a few issues created around how Clang treats intrinsics vs how MSVC treats intrinsics. While I was writing this I also added some sections on behaviour changes that caught me while porting my MSVC codebase to clang-cl. Hopefully we can point issues around intrinsics to this doc and hopefully it is useful to others who run into similar behaviour differences. The behaviour differences highlighted here are differences, as far as I am aware, that we do not intend to change or fix for MSVC. | 1 年前 | |
[C23] Update user-facing docs for C23 This changes some public references of C2x to be C23, corrects standard citations to use the final paragraph numbers, and adds some information about differences between C17 and C23 modes. | 2 年前 | |
[msan] Update Use-after-destruction documentation Reviewed By: kda, eugenis Differential Revision: https://reviews.llvm.org/D124058 | 4 年前 | |
[clang][NFC] Remove trailing whitespaces and enforce it in lib, include and docs A lot of editors remove trailing whitespaces. This patch removes any trailing whitespaces and makes sure that no new ones are added. Reviewed By: erichkeane, paulkirth, #libc, philnik Spies: wangpc, aheejin, MaskRay, pcwang-thead, cfe-commits, libcxx-commits, dschuff, nemanjai, arichardson, kbarton, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, Jim, s.egerton, sameer.abuasal, apazos, luismarques, martong, frasercrmck, steakhal, luke Differential Revision: https://reviews.llvm.org/D151963 | 2 年前 | |
[clang][modules] Add a c23 module feature Add a c23 module feature for requires. Reviewed By: ChuanqiXu, v.g.vassilev, aaron.ballman Differential Revision: https://reviews.llvm.org/D159018 | 2 年前 | |
Triple::normalize: Use none as OS for XX-none-ABI (#89638) When parsing a 3-component triple, after we determine Arch and Env, if the middle component is "none", treat it as OS instead of Vendor. See: https://discourse.llvm.org/t/rfc-baremetal-target-triple-normalization/78524 Fixes: #89582. | 2 年前 | |
Fix typo. NFC. llvm-svn: 240888 | 10 年前 | |
[Clang][Docs] Fix trailing whitespace warnings | 2 年前 | |
Fx typos in documentation | 2 年前 | |
Notifying assume directive as 'worked on'. (#90022) Notifying assume directive as 'worked on'. When checked on slack channel, nobody was working on assume directive. Changes to be committed: modified: clang/docs/OpenMPSupport.rst --------- Co-authored-by: Sunil Kuravinakop | 2 年前 | |
[Documentation] Use HTTPS whenever possible Differential revision: https://reviews.llvm.org/D56946 llvm-svn: 351976 | 7 年前 | |
Reverted r103214. llvm-svn: 103222 | 15 年前 | |
Reverted r103214. llvm-svn: 103222 | 15 年前 | |
[clang] Define ptrauth_sign_constant builtin. (#93904) This is a constant-expression equivalent to ptrauth_sign_unauthenticated. Its constant nature lets us guarantee a non-attackable sequence is generated, unlike ptrauth_sign_unauthenticated which we generally discourage using. It being a constant also allows its usage in global initializers, though requiring constant pointers and discriminators. The value must be a constant expression of pointer type which evaluates to a non-null pointer. The key must be a constant expression of type ptrauth_key. The extra data must be a constant expression of pointer or integer type; if an integer, it will be coerced to ptrauth_extra_data_t. The result will have the same type as the original value. This can be used in constant expressions. Co-authored-by: John McCall <rjmccall@apple.com> | 1 年前 | |
[NFC] Trim trailing whitespace in *.rst | 4 年前 | |
Add docs/README.txt to point to llvm/docs/README.txt. llvm-svn: 171426 | 13 年前 | |
Fix small nits in clang-refactor doc. llvm-svn: 315286 | 8 年前 | |
Fix std::initializer_list recognition if it's exported out of a module - Add implementation - Add a regression test - Add release notes | 1 年前 | |
[clang][doc] Fix link to SYCL compiler design doc | 3 年前 | |
[Clang][Doc][SafeStack] Fix deadlink (NFC) | 3 年前 | |
[clang] Fix typos in documentation | 2 年前 | |
[SpecialCaseList] Use glob by default (#74809) https://reviews.llvm.org/D154014 addes glob support and enables it when #!special-case-list-v2 is the first line. This patch makes the glob support the default (faster than regex after https://reviews.llvm.org/D156046) and switches to the deprecated regex support if #!special-case-list-v1 is the first line. I have surveyed many ignore lists. All ignore lists I find only use basic * . and don't use regex metacharacters such as ( and ). (As neither src: nor fun: benefits from using regex.) They are unaffected by the transition (with a caution that regex src:x/a.pb.* matches x/axpbx but glob src:x/a.pb.* doesn't). There is no deprecating warning. If a user finds #!special-case-list-v1, they shall read that the old syntax is deprecated. Link: https://discourse.llvm.org/t/use-glob-instead-of-regex-for-specialcaselists/71666 | 2 年前 | |
[docs] -fsanitize=cfi only allowed with -fvisibility= llvm-svn: 334870 | 7 年前 | |
[RISCV] Add Zicfiss support to the shadow call stack implementation. (#68075) This patch enable hardware shadow stack with Zicifss and mno-forced-sw-shadow-stack. New feature forced-sw-shadow-stack disables hardware shadow stack even when Zicfiss enabled. | 2 年前 | |
Reapply: [MC/DC][Coverage] Loosen the limit of NumConds from 6 (#82448) By storing possible test vectors instead of combinations of conditions, the restriction is dramatically relaxed. This introduces two options to cc1: * -fmcdc-max-conditions=32767 * -fmcdc-max-test-vectors=2147483646 This change makes coverage mapping, profraw, and profdata incompatible with Clang-18. - Bitmap semantics changed. It is incompatible with previous format. - BitmapIdx in Decision points to the end of the bitmap. - Bitmap is packed per function. - llvm-cov can understand profdata generated by llvm-profdata-18. RFC: https://discourse.llvm.org/t/rfc-coverage-new-algorithm-and-file-format-for-mc-dc/76798 -- Change(s) since llvmorg-19-init-14288-g7ead2d8c7e91 - Update compiler-rt/test/profile/ContinuousSyncMode/image-with-mcdc.c | 1 年前 | |
[clang][driver][clang-cl] Support --precompile and -fmodule-* options in Clang-CL (#98761) This PR is the first step in improving the situation for clang-cl detailed in [this LLVM Discourse thread](https://discourse.llvm.org/t/clang-cl-exe-support-for-c-modules/72257/28). There has been some work done in #89772. I believe this is somewhat orthogonal. This is a work-in-progress; the functionality has only been tested with the [basic 'Hello World' example](https://clang.llvm.org/docs/StandardCPlusPlusModules.html#quick-start), and proper test cases need to be written. I'd like some thoughts on this, thanks! Partially resolves #64118. (cherry picked from commit bd576fe34285c4dcd04837bf07a89a9c00e3cd5e) | 1 年前 | |
[clang][docs] Document ThinLTO options for ld64.lld The LTO-cache-related flags were added here: {D105922} Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D144482 | 3 年前 | |
Support guarded_by attribute and related attributes inside C structs and support late parsing them (#95455) This fixes #20777. This replaces #94216 which was reverted after being merged. Previously the guarded_by, pt_guarded_by, acquired_after, and acquired_before attributes were only supported inside C++ classes or top level C/C++ declaration. This patch allows these attributes to be added to struct members in C. These attributes have also now support experimental late parsing. This is off by default but can be enabled by passing -fexperimental-late-parse-attributes. This is useful for referring to a struct member after the annotated member. E.g. struct Example { int a_value_defined_before __attribute__ ((guarded_by(a_mutex))); struct Mutex *a_mutex; }; | 1 年前 | |
[tsan] Add support for disable_sanitizer_instrumentation attribute Unlike __attribute__((no_sanitize("thread"))), this one will cause TSan to skip the entire function during instrumentation. Depends on https://reviews.llvm.org/D108029 Differential Revision: https://reviews.llvm.org/D108202 | 4 年前 | |
Update all LLVM documentation mentioning runtimes in LLVM_ENABLE_PROJECTS We are moving away from building the runtimes with LLVM_ENABLE_PROJECTS, however the documentation was largely outdated. This commit updates all the documentation I could find to use LLVM_ENABLE_RUNTIMES instead of LLVM_ENABLE_PROJECTS for building runtimes. Note that in the near future, libcxx, libcxxabi and libunwind will stop supporting being built with LLVM_ENABLE_PROJECTS altogether. I don't know what the plans are for other runtimes like libc, openmp and compiler-rt, so I didn't make any changes to the documentation that would imply something for those projects. Once this lands, I will also cherry-pick this on the release/14.x branch to make sure that LLVM's documentation is up-to-date and reflects what we intend to support in the future. Differential Revision: https://reviews.llvm.org/D119351 | 4 年前 | |
Update our URLs in clang doc to use https llvm-svn: 346101 | 7 年前 | |
Fix "[clang][UBSan] Add implicit conversion check for bitfields" (#87761) Fix since #75481 got reverted. - Explicitly set BitfieldBits to 0 to avoid uninitialized field member for the integer checks: diff - llvm::ConstantInt::get(Builder.getInt8Ty(), Check.first)}; + llvm::ConstantInt::get(Builder.getInt8Ty(), Check.first), + llvm::ConstantInt::get(Builder.getInt32Ty(), 0)}; - Value **Previous was erroneously Value *Previous in CodeGenFunction::EmitWithOriginalRHSBitfieldAssignment, fixed now. - Update following: diff - if (Kind == CK_IntegralCast) { + if (Kind == CK_IntegralCast || Kind == CK_LValueToRValue) { CK_LValueToRValue when going from, e.g., char to char, and CK_IntegralCast otherwise. - Make sure that Value *Previous = nullptr; is initialized (see https://github.com/llvm/llvm-project/commit/1189e87951e59a81ee097eae847c06008276fef1) - Add another extensive testcase ubsan/TestCases/ImplicitConversion/bitfield-conversion.c --------- Co-authored-by: Vitaly Buka <vitalybuka@gmail.com> | 2 年前 | |
[clang][driver][clang-cl] Support --precompile and -fmodule-* options in Clang-CL (#98761) This PR is the first step in improving the situation for clang-cl detailed in [this LLVM Discourse thread](https://discourse.llvm.org/t/clang-cl-exe-support-for-c-modules/72257/28). There has been some work done in #89772. I believe this is somewhat orthogonal. This is a work-in-progress; the functionality has only been tested with the [basic 'Hello World' example](https://clang.llvm.org/docs/StandardCPlusPlusModules.html#quick-start), and proper test cases need to be written. I'd like some thoughts on this, thanks! Partially resolves #64118. (cherry picked from commit bd576fe34285c4dcd04837bf07a89a9c00e3cd5e) | 1 年前 | |
[Clang][Docs] Simpler syntax for Github links. (#82746) Github links in release notes are often invalid rST, clutter the release notes and are annoying to write. This introduces a sphynx plugin that rewrites #GH<NUMBER> to a link to the corresponding issue. | 2 年前 | |
[docs] Add missing file llvm-svn: 262604 | 10 年前 | |
[docs] Hide collaboration and include graphs in doxygen docs They don't convey any useful information and make the documentation unnecessarily hard to read. Differential Revision: https://reviews.llvm.org/D149641 | 3 年前 | |
[Clang][Docs] Simpler syntax for Github links. (#82746) Github links in release notes are often invalid rST, clutter the release notes and are annoying to write. This introduces a sphynx plugin that rewrites #GH<NUMBER> to a link to the corresponding issue. | 2 年前 | |
[Clang] Introduce 'clang-nvlink-wrapper' to work around 'nvlink' (#96561) Summary: The clang-nvlink-wrapper is a utility that I removed awhile back during the transition to the new driver. This patch adds back in a new, upgraded version that does LTO + archive linking. It's not an easy choice to reintroduce something I happily deleted, but this is the only way to move forward with improving GPU support in LLVM. While NVIDIA provides a linker called 'nvlink', its main interface is very difficult to work with. It does not provide LTO, or static linking, requires all files to be named a non-standard .cubin, and rejects link jobs that other linkers would be fine with (i.e empty). I have spent a great deal of time hacking around this in the GPU libc implementation, where I deliberately avoid LTO and static linking and have about 100 lines of hacky CMake dedicated to storing these files in a format that the clang-linker-wrapper accepts to avoid this limitation. The main reason I want to re-intorudce this tool is because I am planning on creating a more standard C/C++ toolchain for GPUs to use. This will install files like the following. <install>/lib/nvptx64-nvidia-cuda/libc.a <install>/lib/nvptx64-nvidia-cuda/libc++.a <install>/lib/nvptx64-nvidia-cuda/libomp.a <install>/lib/clang/19/lib/nvptx64-nvidia-cuda/libclang_rt.builtins.a Linking in these libraries will then simply require passing -lc like is already done for non-GPU toolchains. However, this doesn't work with the currently deficient nvlink linker, so I consider this a blocking issue to massively improving the state of building GPU libraries. In the future we may be able to convince NVIDIA to port their linker to ld.lld, but for now this is the only workable solution that allows us to hack around the weird behavior of their closed-source software. This also copies some amount of logic from the clang-linker-wrapper, but not enough for it to be worthwhile to merge them I feel. In the future it may be possible to delete that handling from there entirely. | 1 年前 | |
docs: Initial Sphinx setup for Clang. I don't think this will be visible just yet on <clang.llvm.org/docs/> since I don't think that the necessary server-side setup has taken place. Don't shoot me over the theme. I don't want to duplicate LLVM's theme into the clang repo at the moment, so I just used one of Sphinx's default themes. llvm-svn: 170042 | 13 年前 |
See llvm/docs/README.txt