public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* C-Vise project introduction
@ 2020-04-23 12:50 Martin Liška
  2020-05-13 14:41 ` C-Vise: speed? Martin Liška
  0 siblings, 1 reply; 2+ messages in thread
From: Martin Liška @ 2020-04-23 12:50 UTC (permalink / raw)
  To: GCC Development

Hello.

I would like to announce a new Python fork of the C-Reduce tool:
https://github.com/marxin/cvise

I'm going to start with a bit of history and motivation behind the project.
All started 6 years ago when I joined SUSE as a toolchain developer and I quickly
became a friend with C-Reduce that I've been using for reduction of the GCC compiler
test-cases. No having enough numbers, but I claim I've used the tool probably
one thousand times and I must be one the biggest users of the tool. I wanted
to contribute to the project since then but I'm not much familiar with Perl language.
There's a pending attempt of Moritz who rewrote the tool to Python language 4 year ago
and he hasn't received a proper review. I feel the original authors don't like the language
and when he announced a final comparable port (2 years ago) there was still no feedback.
I took his work and now I'm offering the port to the community with the following improvements:

1) C-Vise is a super-parallel implementation where all passes run their transform and test script
    phase in parallel; that resolves #160; I've seen significant speed up on a 16-core Zen CPU
2) the project contains native BinaryState object which can help with fast traversal of a state space
3) Python is hopefully more popular language than Perl

Minor improvements:
- --log-level option - one can print different level of messages
- --remove-pass - one can skip a pass in pass manager (#200, #202)
- --list-passes - listing of existing passes (#150)
- project contains unit tests for some passes
- LLVM 9 and 10 support (#193, #204)
- --clang-delta-std option - workaround for #210
- unifdef and delta subprojects are removed from the repository
- --timing-since-start - print timestamps since the start of a reduction

Known limitations:
- configure & make build support is dropped
- FreeBSD and Windows port is not tested
- dependency on python-Pebble package
- a small issue observed in Pebble (noxdafox/pebble#58)

I'm planning to create a proper Github release soon and I've done an openSUSE package:
https://build.opensuse.org/package/show/home:marxin:devel:tools/cvise

I would like to thank the original authors and Moritz for the port.
I'm planning to share the codebase of clang_delta (and clex) which is an essential
part of each C/C++ test-case reduction process.

Feel free to test the project and come up with a feedback.

Martin



^ permalink raw reply	[flat|nested] 2+ messages in thread

* C-Vise: speed?
  2020-04-23 12:50 C-Vise project introduction Martin Liška
@ 2020-05-13 14:41 ` Martin Liška
  0 siblings, 0 replies; 2+ messages in thread
From: Martin Liška @ 2020-05-13 14:41 UTC (permalink / raw)
  To: GCC Development

Hello.

I've made some measurements for GCC PRs that I've reduced recently:

- PR92516 - C++ - 6.5MB
   C-Reduce: 77 minutes
   C-Vise: 35 minutes

- PR94523 - C++ - 2.1MB
   C-Reduce: 33 minutes
   C-Vise: 15 minutes

- PR94632 - C++ - 3.3MB
   C-Reduce: 28 minutes
   C-Vise: 20 minutes

- PR94937 - C++ - 8.5MB
   C-Reduce: 303 minutes
   C-Vise: 242 minutes

Note that I also added cvise-delta, which simulates popular delta tool,
but runs in a parallel mode.

Martin

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-05-13 14:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-23 12:50 C-Vise project introduction Martin Liška
2020-05-13 14:41 ` C-Vise: speed? Martin Liška

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).