- 12 Mar, 2019 1 kayıt (commit)
-
-
Luboš Luňák yazdı
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: https://gerrit.libreoffice.org/68026 Tested-by: Jenkins Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by:
Luboš Luňák <l.lunak@collabora.com>
-
- 27 Kas, 2018 1 kayıt (commit)
-
-
Noel Grandin yazdı
the old EvaluateAsInt method has been dropped as from current clang Change-Id: Ie30d1547ad8de777badff4b380d2fc9fb261e8fe Reviewed-on: https://gerrit.libreoffice.org/64107 Tested-by: Jenkins Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk>
-
- 23 Kas, 2018 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...as discussed at <https://lists.freedesktop.org/archives/libreoffice/2018-November/081435.html> "minutes of ESC call ..." Change-Id: Ia053da171d59747984546f38e19da808825b4f79 Reviewed-on: https://gerrit.libreoffice.org/63832 Tested-by: Jenkins Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 11 Eyl, 2018 1 kayıt (commit)
-
-
Noel Grandin yazdı
Change-Id: Ib50583289afd6212d5d5aedd3d6b7ede75902052 Reviewed-on: https://gerrit.libreoffice.org/60277 Tested-by: Jenkins Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk>
-
- 06 Tem, 2018 1 kayıt (commit)
-
-
Michael Stahl yazdı
There are some problems here, this should fix one of them: the getFilename function returns "<stdin>" for spelling locations, because the input to clang is sort of preprocessed via -frewrite-includes if icecream is used and the file is built on a remote host (whereas it's apparently not preprocessed if the file is compiled locally by icecream). Using getPresumedLoc() uses the #line directives in the preprocessed input, which avoids the problem but is more expensive, so try to use it only when necessary. The getFileEntry(getMainFileID())->getName() pattern will also result in "<stdin>", but fortunately icecream passes -main-file-name, which oddly enough isn't used by the SourceManager's spelling locations, but is available separately via CodeGenOptions. This builds everything successfully with clang version 6.0.0: ICECC_PREFERRED_HOST=myremote make check gb_SUPPRESS_TESTS=t Change-Id: Ic121511683e5302d7b9d85186c8b9c4a5443fa1b Reviewed-on: https://gerrit.libreoffice.org/54993 Tested-by: Jenkins Reviewed-by:
Thorsten Behrens <Thorsten.Behrens@CIB.de>
-
- 23 Mar, 2018 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
This reverts commit b39e627b. The assumed (see comment at <https://gerrit.libreoffice.org/#/c/46769/4/compilerplugins/clang/ plugin.cxx@633>) performance bottleneck of isSamePathname -> getAbsolutePath does show up in Flamegraph inspections of LO builds. But changing (non-member function) isSamePathname to only call getAbsolutePath if (PluginHandlder member function) isLOOLMode is true would need some code reorg, and Online development doesn't seem to make too much actual use of the plugin, so conclusion on IRC was to revert. Change-Id: I0f04fdcc87087dac516630ed5e48361f5ea332ca Reviewed-on: https://gerrit.libreoffice.org/51774Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 16 Şub, 2018 1 kayıt (commit)
-
-
Noel Grandin yazdı
- use AdjustFoo variants of methods on Rect/Size/Point - ignore double assignments - improve error messages - handle expressions that include macros by using getExpansionLoc - replace ++X() with X() + 1 Change-Id: Ida6b06b2a92e9226168aff6b1b8031f5867687b4
-
- 12 Şub, 2018 1 kayıt (commit)
-
-
Noel Grandin yazdı
after commit 94ab8e43 Date: Fri Feb 9 15:28:41 2018 +0200 improve loplugin rewriter double source modification detection Change-Id: Ibf0a64fe4cc3dd6bf5ae16672b3d748a842196e4
-
- 10 Şub, 2018 1 kayıt (commit)
-
-
Noel Grandin yazdı
because my new rewriter easily generates overlapping rewriting. Move the code from flatten and salcall up into the pluginhandler, and drop the simpler detection logic. Change-Id: I3da51ac510954a5d4276cee0924cc5dc1fc9a734 Reviewed-on: https://gerrit.libreoffice.org/49493Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk>
-
- 21 Ara, 2017 1 kayıt (commit)
-
-
Pranav Kant yazdı
Change-Id: I8e45936ef5675d531be71496e8894b90eaf2f6e2 Reviewed-on: https://gerrit.libreoffice.org/46769Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
pranavk <pranavk@collabora.co.uk>
-
- 08 Ara, 2017 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...to enable debug-only code in the plugins. Some situations in the plugin code should never happen, yet must not by default report errors or trigger assertions, as some newly written LO code could trigger them nevertheless (in which case the plugin code will likely need to be adapted, to cater for these presumed-impossible situations). Such code can now be included in the plugins behind an if(isDebugMode()) guard, and can explicitly be enabled with --enable-compiler-plugins=debug. I deliberately made this a runtime rather than a compile time option (using some #ifdef guards in the plugin code, say), as it IMO keeps the code more readable, and also allows overridding COMPILER_PLUGINS_DEBUG=... on the make command line. Change-Id: Iea4f0c2783ad968a0de097fa710b3be1a248de73 Reviewed-on: https://gerrit.libreoffice.org/46096Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 16 Kas, 2017 2 kayıt (commit)
-
-
Stephan Bergmann yazdı
...by structurally comparing complex constexpr exprs that use template functions that happen to not have been instantiated, so Expr::EvaluateAsRValue et al would fail. (Which happened with SFX_PRINTER_ALL in SfxViewShell::SetPrinter, include/sfx2/viewsh.hxx.) Now all of the LO code base should compile without causing checkIdenticalDefaultArguments to return Maybe. Change-Id: I2b103418c2c68f6d2242535c9cca3222a2508778 Reviewed-on: https://gerrit.libreoffice.org/44773Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
Stephan Bergmann yazdı
...introduced with cab6e683 "Make checkIdenticalDefaultArguments more precise", causing older Clang to hang when compiling specific LO source files. Change-Id: I99cfcad2f0cd9adccd5aa84d21502f586762217f
-
- 15 Kas, 2017 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...when creating objects involves copy/move constructors Change-Id: I0c7ccb85b7dcb584502a48817d7d2abfde25aaf2 Reviewed-on: https://gerrit.libreoffice.org/44733Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 14 Kas, 2017 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...when creating objects of the same derived type Change-Id: I109b614473a2fb5b08dddd07a4fbe757086141a1 Reviewed-on: https://gerrit.libreoffice.org/44716Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 10 Kas, 2017 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...instead of blacklisting such cases. Reuses the checkIdenticalDefaultArguments code that was originally in loplugin:overrideparam (and appears to work reasonably well for the default arguments that actually happen in practice). Change-Id: I9cf2db17101beb135b2039a9b7ed335bd2af2c08 Reviewed-on: https://gerrit.libreoffice.org/44594Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 07 Kas, 2017 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...which, according to callgrind, reduces instruction fetch count spent on compiling sw/source/core/layout/paintfrm.cxx (randomly selected because it is rather large) by 5% from 41,992,064,226 to 39,861,989,855 (function main() in clang-6.0). This is best done by forwarding ignoreLocation calls from Plugin to the PluginHandler signleton, but due to the tight mutual coupling between plugin.hxx and pluginhandler.hxx that unfortunately required some reorganization (and two outstanding TODO clean-ups of temporarily introduced using declarations in plugin.hxx). Change-Id: Ia4270517d194def7db7ed80cb6894e9c473e9499
-
- 27 Eki, 2017 4 kayıt (commit)
-
-
Stephan Bergmann yazdı
This can also call loplugin::isSamePathname with two paths that both contain backslashes, so finally make it (and hasPathnamePrefix) symmetric in which arguments my contain backslashes. Change-Id: I0465988d9d41e21c5660cbdbd1558543860ae1ad
-
Stephan Bergmann yazdı
Change-Id: I2858c6cb74b96ffe6a799dc2ab02cbbe1c56abc7
-
Noel Grandin yazdı
lets just use the built in parents stuff Change-Id: I7bb705acfcd6c8c18168676b0cdb13c26ba5b95a
-
Noel Grandin yazdı
to getParentStmt and rename parentFunctionDecl to getParentFunctionDecl, so I don't keep using accidentally naming my variables the same as the functions. Change-Id: I66f9452458c8b439e5132191ac5219fb6d420708
-
- 29 Eyl, 2017 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...which is there for MSVC compatibility, but can cause getBody() to return null even when doesThisDeclarationHaveABody() is true. And in staticmethods.cxx we need to check doesThisDeclarationHaveABody() instead of hasBody(): For some class template member functions that are only defined outside their class definition, as is the case for OSequenceIterator::hasMoreElements in include/comphelper/sequence.hxx, hasBody() may be true for the original member function declaration inside the class (as there is some later definition that does have a body), but isLateTemplateParsed() is not (it is only true for the later definition). So just skip any such declarations that are not definitions (which is sane anyway, as otherwise such functions could pointlessly be inspected multiple times). Change-Id: I724f652a8f060a931f8b5fc3e4feb5f307a922bf Reviewed-on: https://gerrit.libreoffice.org/42914Reviewed-by:
Stephan Bergmann <sbergman@redhat.com> Tested-by:
Stephan Bergmann <sbergman@redhat.com>
-
- 22 Tem, 2017 1 kayıt (commit)
-
-
Noel Grandin yazdı
Change-Id: I8a9cf2c4b81b95bf654f7e90306328d72e3d3408 Reviewed-on: https://gerrit.libreoffice.org/40280Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk>
-
- 20 Haz, 2017 2 kayıt (commit)
-
-
Noel Grandin yazdı
to match our more normal conventions. Also drop the 'using std' and some other cruft Change-Id: I02ef81c5427188bc03a20b157a57a900a9d7bf0d
-
Noel Grandin yazdı
When the field in question is read from inside a constructor initializer. In the process, create some needed infrastructure in the plugin classes. Change-Id: I2f440efa6912801a236727c9fe3180404616958c Reviewed-on: https://gerrit.libreoffice.org/38960Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk>
-
- 18 May, 2017 2 kayıt (commit)
-
-
Stephan Bergmann yazdı
...instead of merely getting a warning from PluginHandler::HandleTranslationUnit after the fact. Such automatic rewriting should probably never be what one wants. Change-Id: I3829007224a197ebb4d55d24323b375cbbdf815c
-
Stephan Bergmann yazdı
Change-Id: I91bc89a9076c6642e06b238f65f2d31a1d20c6b5
-
- 08 Mar, 2017 1 kayıt (commit)
-
-
Samuel Mehrbrodt yazdı
Change-Id: I3bec4570149af50fad5eef33bafb9842ab598798 Reviewed-on: https://gerrit.libreoffice.org/34967Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
-
- 04 Mar, 2017 1 kayıt (commit)
-
-
Samuel Mehrbrodt yazdı
* Add GPG implementation of css::xml::crypto UNO interfaces (part of that is only stub atm) * List gpg keys along with other certificates * Viewing gpg certificates: Not all properties are implemented yet Change-Id: I7f60b26efe949a94bf8fe1b8d4d428002c2995b1 Reviewed-on: https://gerrit.libreoffice.org/33843Tested-by:
Jenkins <ci@libreoffice.org> Reviewed-by:
Siegmund Gorr <siegmund.gorr@cib.de> Reviewed-by:
Thorsten Behrens <Thorsten.Behrens@CIB.de>
-
- 18 Ara, 2016 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
Change-Id: Iba3fae8bbecaf5782228be1fb99f196864d79e6b
-
- 19 Eki, 2016 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
...that got in, for no apparent reason, when various, slightly different implementations of isInUnoIncludeFile got consolidated into one. Change-Id: I64a9eb62703d57a0b7b57720ec9f251ffa780691
-
- 18 Eki, 2016 1 kayıt (commit)
-
-
Noel Grandin yazdı
Change-Id: If470e1d9b481c9eda0829aa985152baf8fb46d7a
-
- 27 Eyl, 2016 1 kayıt (commit)
-
-
Noel Grandin yazdı
which fixes some false positives Change-Id: I555349180b5ca819f29695789f1545ba2177bd09 Reviewed-on: https://gerrit.libreoffice.org/29320Reviewed-by:
Noel Grandin <noel.grandin@collabora.co.uk> Tested-by:
Noel Grandin <noel.grandin@collabora.co.uk>
-
- 22 Eyl, 2016 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
1977b57b "vcl: loplugin:override" had only hit in out-of-tree builds, where the #include in the generated workdir/CustomTarget/vcl/unx/kde4/tst_exclude_socket_notifiers.moc is an absolute path. For in-tree builds, the generated #include line is "../../../../../vcl/unx/kde4/tst_exclude_socket_notifiers.hxx", so the returned getFileName() is .../workdir/../../../../../vcl/..., so was erroneously considered to be under WORKDIR. Change-Id: I9abef04b90ecb4921087a53ff196b833940085e5
-
- 29 Haz, 2016 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
Change-Id: I81e97c5f720535b33dd3ce72d01151765e4e93a0
-
- 28 Haz, 2016 1 kayıt (commit)
-
-
Noel Grandin yazdı
Change-Id: Ia10a76a98a63c6ea3b516d9146281f672b213ab3
-
- 18 Nis, 2016 1 kayıt (commit)
-
-
Stephan Bergmann yazdı
Change-Id: Ie527703e9687a42bfc39439952b9d1a83d7cad24
-
- 19 Şub, 2016 1 kayıt (commit)
-
-
Noel Grandin yazdı
Change-Id: I0f83939babacf92485420ee63f290a297d7cb717 Reviewed-on: https://gerrit.libreoffice.org/22498Reviewed-by:
Noel Grandin <noelgrandin@gmail.com> Tested-by:
Noel Grandin <noelgrandin@gmail.com>
-
- 11 Ock, 2016 1 kayıt (commit)
-
-
Noel Grandin yazdı
Change-Id: I825d022d09282bc9b6cffd9178e40e4090d335da
-
- 02 Kas, 2015 1 kayıt (commit)
-
-
Benjamin Ni yazdı
Change-Id: I178545792c7354a362658ac7ef8b1d4cf0865797 Signed-off-by:
Michael Stahl <mstahl@redhat.com>
-