path: root/compilerplugins/clang/store/tutorial
AgeCommit message (Collapse)AuthorFilesLines
2019-04-28Fix typoAndrea Gelmini1-1/+1
Change-Id: Id6985abca7702039168381082da4e47603b9aaf3 Reviewed-on: Tested-by: Jenkins Reviewed-by: Julien Nabet <>
2019-03-12make (some) clang plugins share the same RecursiveASTVisitorLuboš Luňák3-3/+3
Each plugin currently uses its own recursive AST run, which adds up. This patch adds another shared plugin which internally contains all (suitable) plugins and dispatches to them from the same one recursive run. This patch converts ~25 plugins and for starmath's accessibility.cxx reduces clang build time from 5.43s to 5.14s (and it's 4.39s without any plugins). As there are almost 50 more plugins to go, this can theoretically result in 4.56s final time, although probably not all plugins can be that easily converted, if at all. This mostly requires very little change in many plugins (see e.g. BadStatics), some even work without any functionality change (e.g. CharRightShift). Traverse* calls require some changes but are often not that difficult. WalkUp* probably can't be supported, although some plugins can(?) possibly be adjusted to not rely on them. And of course some plugins can be left as they are, using their own recursive run. See description at the top of generator.cxx for description of how to convert a plugin. The sharedvisitor.cxx source is generated based on scanning relevant plugin sources using a clang-based scanner/generator. The generated source is intentionally included instead of getting always generated, as the generating currently takes some time, so it should get updated in git whenever a change in a plugin triggers a source change in it. Change-Id: Ia0d2e3a5a464659503dbb4ed6c20b6cc89b4de01 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <> Reviewed-by: Luboš Luňák <>
2018-08-14filter out some of the AST in the pluginsNoel Grandin6-10/+6
by checking if the current namespace decl is in our code, so we have to scan less stuff, which results in a 10% perf improvement for me Change-Id: Idf0e30d57b6d0dcd13daa9ed679c28b9d233d387 Reviewed-on: Tested-by: Jenkins Reviewed-by: Noel Grandin <>
2014-07-24compilerplugins: Fix tutorials pluginsJuan Picca6-9/+9
Broken in commit 1f078fcaddd45bb074e4d0a4933db01f6e8b623e Change-Id: Ica93c3b9309b2ae4d973ccc34a84b5accac7472c Reviewed-on: Reviewed-by: Thomas Arnhold <> Tested-by: Thomas Arnhold <>
2013-09-22add mode lines to new files (and idls) since last runCaolán McNamara8-0/+21
Change-Id: Id1e74f18c90e69d1a781c8f02e30dc3c005ed4fd
2013-05-31mark all virtuals in the clang plugin as overrideLuboš Luňák3-3/+3
In order to help catch Clang API changes. Change-Id: I5738f5dff405f7a2dd377c983fb32c1c7a2ff921
2013-05-02add constLuboš Luňák6-8/+8
Change-Id: I71236b9ca6300372ba00c85401cf19f6c0e7ac99
2013-03-28adjust unused compiler plugins for ASTContext to CompilerInstance change tooLuboš Luňák6-12/+12
Change-Id: I415ed25586408d7e7df9457f7c637a8c6d13d35d
2013-02-22s/the the/the/Tor Lillqvist2-2/+2
Change-Id: Iadacffaad832c6ff06757e8567e24f929f24a4c3
2013-02-02tutorial examples for writing new Clang plugin actionsLuboš Luňák8-0/+378 Change-Id: Ieb4fc186490e81ab961c094ca0a7fcdabc0f348f