Frama-C Bug Tracking System

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000801Frama-CPlug-in > slicingpublic2011-04-20 11:342011-10-10 14:14
Reporterpascal 
Assigned ToAnne 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionFrama-C GIT, precise the release id 
Target VersionFixed in VersionFrama-C Nitrogen-20111001 
Summary0000801: r12951, slicing is slow
DescriptionNot sure whether this is a real issue and how much is can be changed, but slicing is very slow with this command and program:


i=s.20000836.1.c ~/ppc/bin/toplevel.opt -val-signed-overflow-alarms $i -cpp-command "gcc -m32 -C -E -D__FRAMAC -I. -I$CSMITH/runtime " -slice-calls Frama_C_show_each -slevel 5000 -slevel-function crc32_gentab:0 -then-on 'Slicing export' -print -ocode s.c -kernel-debug 1

The -kernel-debug 1 is to get a backtrace when pressing ctrl-C:

[from] Computing for function safe_rshift_func_int16_t_s_u
/home/cuoq/csmith-2.0.0/runtime/safe_math.h:265:[from] Non terminating function (no dependencies)
[from] Done for function safe_rshift_func_int16_t_s_u
^CFatal error: exception Sys.Break
Raised at file "sys.ml", line 79, characters 52-57
Called from file "hashtbl.ml", line 62, characters 6-29
Called from file "cil/src/ext/dataflow.ml", line 450, characters 32-52
Called from file "cil/src/ext/dataflow.ml", line 435, characters 32-35
Called from file "queue.ml", line 134, characters 6-20
Called from file "cil/src/ext/dataflow.ml", line 435, characters 8-54
Called from file "cil/src/ext/dataflow.ml", line 450, characters 14-131
Called from file "cil/src/ext/dataflow.ml", line 495, characters 16-43
Called from file "cil/src/ext/dataflow.ml", line 500, characters 9-22
Called from file "src/pdg/build.ml", line 1114, characters 10-33
Called from file "src/pdg/build.ml", line 1141, characters 14-34
Called from file "src/project/state_builder.ml", line 634, characters 17-22
Called from file "src/slicing/slicingMacros.ml", line 151, characters 46-60
Called from file "src/slicing/fct_slice.ml", line 756, characters 23-50
Called from file "src/slicing/fct_slice.ml", line 1116, characters 46-73
Called from file "src/slicing/fct_slice.ml", line 1161, characters 12-52
Called from file "src/slicing/slicingProject.ml", line 329, characters 12-52
Called from file "src/slicing/slicingProject.ml", line 371, characters 16-48
Called from file "src/slicing/slicingProject.ml", line 402, characters 26-45
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 403, characters 10-27
Called from file "src/slicing/slicingProject.ml", line 411, characters 10-27
Called from file "src/slicing/register.ml", line 465, characters 10-44
Called from file "src/slicing/register.ml", line 1161, characters 4-50
Called from file "queue.ml", line 134, characters 6-20
Called from file "src/kernel/boot.ml", line 36, characters 4-20
Called from file "src/kernel/cmdline.ml", line 723, characters 2-9
Called from file "src/kernel/cmdline.ml", line 200, characters 4-8
Re-raised at file "src/kernel/cmdline.ml", line 214, characters 7-10
Called from file "src/kernel/boot.ml", line 65, characters 2-330
TagsNo tags attached.
Attached Filesc file icon s.20000836.1.c [^] (28,931 bytes) 2011-04-20 11:34 [Show Content]

- Relationships

-  Notes
(0001797)
Anne (reporter)
2011-04-20 14:29

It seems that most of the time is spent building the pdg of [func_1] which is quite big (some of this time is used for the [from] computation, but not that much) :

# -slice-calls Frama_C_show_each
# real 2m41.191s user 2m40.136s sys 0m0.44
# -pdg
# real 2m41.277s user 2m38.952s sys 0m0.785s
# -fct-pdg func_1
# real 2m41.561s user 2m39.799s sys 0m0.315s


(well, I am not sure of how to interpret that since the whole PDG seems to take less time than the PDG of [func_1] but it gives an idea...)

I try to investigate further...
(0001798)
Anne (reporter)
2011-04-20 14:39

I am not sure that there is a problem here : it is just a quite big function with many operations and 34 loops, so it takes time to compute...
(0001820)
Anne (reporter)
2011-04-28 14:02

Can we close this one, Pascal ?
To me, it doesn't seem to be a bug... just a huge function.
(0001830)
Anne (reporter)
2011-04-29 09:01

Would need some profiling on the PDG part. One day...
(0002075)
Anne (reporter)
2011-07-29 09:57

Could you check if it is still long ? I changed nothing but just tried it, and it seems that is is much faster now...

# -slice-calls Frama_C_show_each
# real 0m3.536s user 0m3.364s sys 0m0.070s

- Issue History
Date Modified Username Field Change
2011-04-20 11:34 pascal New Issue
2011-04-20 11:34 pascal Status new => assigned
2011-04-20 11:34 pascal Assigned To => Anne
2011-04-20 11:34 pascal File Added: s.20000836.1.c
2011-04-20 14:29 Anne Note Added: 0001797
2011-04-20 14:39 Anne Note Added: 0001798
2011-04-28 14:02 Anne Note Added: 0001820
2011-04-29 09:01 Anne Note Added: 0001830
2011-04-29 09:01 Anne Status assigned => acknowledged
2011-07-29 09:57 Anne Note Added: 0002075
2011-07-29 13:06 pascal Status acknowledged => resolved
2011-07-29 13:06 pascal Resolution open => fixed
2011-10-10 14:13 signoles Fixed in Version => Frama-C Nitrogen-20111001
2011-10-10 14:14 signoles Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker