compbench-devel Mailing List for CompBenchmarks (Page 14)
Brought to you by:
xfred
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(48) |
Oct
(51) |
Nov
(66) |
Dec
(83) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(242) |
Feb
(56) |
Mar
(95) |
Apr
(120) |
May
(127) |
Jun
(32) |
Jul
(10) |
Aug
(55) |
Sep
(114) |
Oct
(3) |
Nov
|
Dec
|
From: Frederic T. <xf...@us...> - 2007-05-16 09:44:54
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv28957 Modified Files: Makefile.am Log Message: Thread.* imported. Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base/Makefile.am,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Makefile.am 5 Feb 2007 20:02:51 -0000 1.7 --- Makefile.am 16 May 2007 09:44:49 -0000 1.8 *************** *** 10,14 **** noinst_LTLIBRARIES = libBase.la ! sources = XML.cpp XMLReader.cpp md5.cpp Config.cpp Result.cpp libBase_la_SOURCES = $(sources) $(source_sys) --- 10,14 ---- noinst_LTLIBRARIES = libBase.la ! sources = Thread.cpp XML.cpp XMLReader.cpp md5.cpp Config.cpp Result.cpp libBase_la_SOURCES = $(sources) $(source_sys) *************** *** 19,22 **** INCLUDES = -I $(top_srcdir)/libcompbenchmarks @XML_CPPFLAGS@ -DDATAROOTDIR=\"@datarootdir@\" ! libBase_la_LIBADD = @XML_LIBS@ --- 19,22 ---- INCLUDES = -I $(top_srcdir)/libcompbenchmarks @XML_CPPFLAGS@ -DDATAROOTDIR=\"@datarootdir@\" ! libBase_la_LIBADD = @XML_LIBS@ -lpthread |
From: Frederic T. <xf...@us...> - 2007-05-16 09:44:26
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv28929 Added Files: Thread.cpp Thread.h Log Message: First import. --- NEW FILE: Thread.h --- /* ---------------------------------------------------------------------------- $Id: Thread.h,v 1.1 2007/05/16 09:44:19 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #ifndef H_CBMTHREAD #define H_CBMTHREAD 1 #include <pthread.h> namespace CBM { /** \brief Class for storing and managing threads */ class Mutex { private: pthread_mutex_t mutex; public: Mutex(); virtual void Lock(void); virtual void Unlock(void); virtual ~Mutex(); }; class Thread { private: pthread_t tid; int isTerminated; Mutex mutex; protected: virtual void P(void); virtual void R(void); virtual void join(void); public: Thread(); virtual void routine(void) = 0; virtual void terminated(void); virtual int Terminated(void); virtual float Progress(void); virtual void Start(void); /** Destructor */ virtual ~Thread(); }; class ThreadAction : public Thread { private: protected: ThreadAction(); public: virtual float Progress(void) = 0; ~ThreadAction(); }; class ThreadActionTest : public ThreadAction { private: int slp; Mutex m; protected: virtual void routine(void); public: ThreadActionTest(); virtual float Progress(void); ~ThreadActionTest(); }; } #endif --- NEW FILE: Thread.cpp --- /* ---------------------------------------------------------------------------- $Id: Thread.cpp,v 1.1 2007/05/16 09:44:19 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #include <Base/Thread.h> #include <vector> using namespace CBM; void *thread_main_routine(void *tobj) { CBM::Thread *thread = ((CBM::Thread*)tobj); thread->routine(); thread->terminated(); pthread_exit(NULL); } Mutex::Mutex() { pthread_mutex_init(&mutex, NULL); } void Mutex::Lock(void) { pthread_mutex_lock(&mutex); } void Mutex::Unlock(void) { pthread_mutex_unlock(&mutex); } Mutex::~Mutex() { pthread_mutex_destroy(&mutex); } Thread::Thread() { isTerminated=0; } void Thread::P(void) { mutex.Lock(); } void Thread::R(void) { mutex.Unlock(); } void Thread::join(void) { pthread_join(tid, NULL); } void Thread::terminated(void) { P(); isTerminated=1; R(); } int Thread::Terminated(void) { int term; P(); term=isTerminated; R(); if (term) join(); return(term); } float Thread::Progress(void) { return(0.0); } void Thread::Start(void) { pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); isTerminated=0; pthread_create(&tid, &attr, thread_main_routine, (void*) this); } Thread::~Thread() { } ThreadAction::ThreadAction() : Thread() { } ThreadAction::~ThreadAction() { } ThreadActionTest::ThreadActionTest() : ThreadAction() { slp=5; } void ThreadActionTest::routine(void) { int loc = slp; while (loc--) { m.Lock(); slp=loc; m.Unlock(); sleep(1); } } float ThreadActionTest::Progress(void) { int loc; m.Lock(); loc=slp; m.Unlock(); return((5-loc)/.05); } ThreadActionTest::~ThreadActionTest(void) { } |
From: Frederic T. <xf...@us...> - 2007-05-07 20:06:57
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/System In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4884 Modified Files: System.cpp System.h Log Message: Time measured up to microseconds. Index: System.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/System/System.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** System.cpp 16 Apr 2007 18:23:42 -0000 1.12 --- System.cpp 7 May 2007 20:06:54 -0000 1.13 *************** *** 34,37 **** --- 34,39 ---- System *CBM::cbmSystem =0; + struct timeval tv; + System::System(std::string _filename) { *************** *** 557,565 **** } ! time_t System::Time(void) { ! return(time(NULL)); } int System::done(void) { --- 559,585 ---- } ! void System::startTimer(void) { ! timerclear(&tv); ! gettimeofday(&tv, NULL); ! } ! ! double System::endTimer(void) ! { ! struct timeval tv2; ! double sec; ! double usec; ! ! timerclear(&tv2); ! gettimeofday(&tv2, NULL); ! ! sec=(tv2.tv_sec-tv.tv_sec); ! usec=(tv2.tv_usec-tv.tv_usec); ! ! return(sec+usec/1000000.0); ! } + int System::done(void) { Index: System.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/System/System.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** System.h 15 Feb 2007 19:02:38 -0000 1.7 --- System.h 7 May 2007 20:06:54 -0000 1.8 *************** *** 26,29 **** --- 26,30 ---- #include <string> + #include <sys/time.h> #include <time.h> *************** *** 273,280 **** std::string data); ! /** Returns current time in seconds, since EPOC. ! * \return Current time. */ ! virtual time_t Time(void); /** Release the object. Frees internal pointers, and removes lockfiles. --- 274,292 ---- std::string data); ! ! /** Initialize current object's timer. ! * ! * \sa endTimer(); */ ! virtual void startTimer(void); ! ! /** Returns elapsed time in seconds. ! * ! * Elapsed time is computed since last startTimer() call with ! * a precision up to microseconds. ! * ! * \return Time measurement. ! */ ! virtual double endTimer(void); /** Release the object. Frees internal pointers, and removes lockfiles. |
From: Frederic T. <xf...@us...> - 2007-05-07 20:06:54
|
Update of /cvsroot/compbench/CompBenchmarks++/SupportedBenchmarks In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4870 Modified Files: Benchmark-BENCHPPLINUX.cpp Log Message: Time measured up to microseconds. Index: Benchmark-BENCHPPLINUX.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/SupportedBenchmarks/Benchmark-BENCHPPLINUX.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Benchmark-BENCHPPLINUX.cpp 25 Jan 2007 15:38:19 -0000 1.10 --- Benchmark-BENCHPPLINUX.cpp 7 May 2007 20:06:38 -0000 1.11 *************** *** 285,290 **** std::string cmd; std::string result; ! time_t begint; ! time_t endt; double it; char dum[16] = { 0 }; --- 285,289 ---- std::string cmd; std::string result; ! double endt; double it; char dum[16] = { 0 }; *************** *** 301,311 **** cmd+=" -f3 -d':')"; ! begint=System()->Time(); if (System()->exec(cmd, result)==0) { System()->Chomp(result); it=atof(result.c_str()); ! endt=System()->Time(); ! if (endt>begint) { ! sprintf(dum, "%0.0f", it/(endt-begint)); result=dum; return(result); --- 300,310 ---- cmd+=" -f3 -d':')"; ! System()->startTimer(); if (System()->exec(cmd, result)==0) { System()->Chomp(result); it=atof(result.c_str()); ! endt=System()->endTimer(); ! if (endt>0) { ! sprintf(dum, "%0.0f", it/endt); result=dum; return(result); |
From: Frederic T. <xf...@us...> - 2007-05-07 20:06:19
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Benchmark In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4832 Modified Files: Benchmark.cpp Benchmark-xZIP.cpp Package.cpp Log Message: Time measured up to microseconds. Index: Package.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Benchmark/Package.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Package.cpp 15 Feb 2007 18:56:29 -0000 1.10 --- Package.cpp 7 May 2007 20:06:15 -0000 1.11 *************** *** 394,399 **** int r; std::string info; ! time_t beg; ! time_t end; char tmp[128]; --- 394,398 ---- int r; std::string info; ! double end; char tmp[128]; *************** *** 406,414 **** Name()); ! beg=system->Time(); r=make(); if (r) { ! end=system->Time(); ! sprintf(tmp, "%f", (double) (end-beg)); lastBuildTime=tmp; std::cout << "Build time : " << lastBuildTime << std::endl; --- 405,413 ---- Name()); ! system->startTimer(); r=make(); if (r) { ! end=system->endTimer(); ! sprintf(tmp, "%f", end); lastBuildTime=tmp; std::cout << "Build time : " << lastBuildTime << std::endl; Index: Benchmark-xZIP.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Benchmark/Benchmark-xZIP.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Benchmark-xZIP.cpp 17 Apr 2007 18:15:11 -0000 1.2 --- Benchmark-xZIP.cpp 7 May 2007 20:06:15 -0000 1.3 *************** *** 49,54 **** std::string BenchmarkxZIP::bench(void) { ! time_t start = System()->Time(); ! time_t end; std::string cmd; std::string result; --- 49,53 ---- std::string BenchmarkxZIP::bench(void) { ! double end; std::string cmd; std::string result; *************** *** 64,70 **** cmd+="c Compbenchmarks.dat > /dev/null"; if (System()->exec(cmd, sstdout)==0) { ! end=System()->Time(); ! sprintf(dum, "%0.0f", ((float)package->totalSize())/((int)(end-start))); result=dum; return(result); --- 63,70 ---- cmd+="c Compbenchmarks.dat > /dev/null"; + System()->startTimer(); if (System()->exec(cmd, sstdout)==0) { ! end=System()->endTimer(); ! sprintf(dum, "%0.0f", ((double)package->totalSize())/(end)); result=dum; return(result); Index: Benchmark.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Benchmark/Benchmark.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Benchmark.cpp 17 Apr 2007 18:15:11 -0000 1.6 --- Benchmark.cpp 7 May 2007 20:06:15 -0000 1.7 *************** *** 66,71 **** std::string r; std::string info; ! time_t beg; ! time_t end; char tmp[128]; --- 66,70 ---- std::string r; std::string info; ! double end; char tmp[128]; *************** *** 84,94 **** ! beg=System()->Time(); r=bench(); Package()->System()->Chomp(r); if (r!="0") { ! end=System()->Time(); ! sprintf(tmp, "%f", (double) (end-beg)); lastExecutionTime=tmp; Package()->storeStatus(Package::Benchmarked); --- 83,93 ---- ! System()->startTimer(); r=bench(); Package()->System()->Chomp(r); if (r!="0") { ! end=System()->endTimer(); ! sprintf(tmp, "%f", end); lastExecutionTime=tmp; Package()->storeStatus(Package::Benchmarked); |
From: Frederic T. <xf...@us...> - 2007-05-01 19:43:45
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv19680 Modified Files: main.h Log Message: Updated documentation. Index: main.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/main.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** main.h 1 May 2007 14:39:29 -0000 1.10 --- main.h 1 May 2007 19:43:42 -0000 1.11 *************** *** 16,20 **** * This document presents concepts, source layout and organisation of CompBenchmarks. * As a reminder, this software has been released under the GPL license and aims to ! * provide a convenient environment to benchmark softwares using different compilers * and options on a variety of architectures. * --- 16,20 ---- * This document presents concepts, source layout and organisation of CompBenchmarks. * As a reminder, this software has been released under the GPL license and aims to ! * provide a convenient environment to benchmark software using different compilers * and options on a variety of architectures. * *************** *** 23,27 **** * CompBenchmarks is a package built around the libcompbenchmarks shared library, * which brings core functionnalities. It also comes with ! * compbenchmarks-core, other programs and user interfaces that uses and interract with * libcompbenchmarks. * --- 23,27 ---- * CompBenchmarks is a package built around the libcompbenchmarks shared library, * which brings core functionnalities. It also comes with ! * compbenchmarks-core, other programs and user interfaces that interracts with * libcompbenchmarks. * *************** *** 41,74 **** * - \link CBM::UI user interface\endlink. Higher-level core abstractions for UI. * - * These concepts aims giving flexibility and should improve (re-)useability. - * * Another major element is \ref howto_kb "knowledge-base", which can for instance enlight * incompatibilities between options, and which is used in * \link CBM::Plan benchmark plans\endlink. * ! * Basically, operating system object is detected at CompBenchmarks ! * compilation time and instancied at run time to get others parts working. ! * Only one user interface, compbenchmarks-ui-perl as been coded for actual ! * needs, and it uses the compbenchmarks-core program. ! * Many benchmarks have been derivated from base benchmark and package classes. ! * ! * \section behaviour Behaviour ! * ! * Compiled on Linux, program'll use a CBMSystemLinux instance. It can install ! * defined packages (like \link CBMBenchmarkGZIP gzip\endlink or \link ! * CBMBenchmarkBENCHPP Bench++\endlink) via Internet and uses some benchmarks on them. ! * Benchmarks can also be hard-coded in CompBenchmarks (as, for gzip : \link CBMBenchmarkGZIP1 gzip-1c\endlink) or directly providen by packages (like \link CBMBenchmarkBENCHPP_WHETSTONE benchpp-whetstone\endlink). ! * ! * External benchmark's packages are supported through independant shared ! * libraries that use libcompbenchmarks'. ! * ! * To start a new benchmark or package implementation, you can ! * - download the sources (http://compbench.sourceforge.net), ! * - take a quick look at \link CBMBenchmark CBMBenchmark\endlink class. ! * - for, said, Foo_benchpack.tar.gz package, create the Benchmark-FOO-BENCHPACK.cpp and corresponding header files in Benchmark directory, ! * - update Makefile.am and benchmarks.list files in the Benchmark directory, ! * - Look at Benchmark-SCIMARK2.cpp or Benchmark-BZIP2.cpp, which are good models. * ! * You can also get in touch with me, see http://compbench.sf.net/cgi-bin/feedback.cgi . * */ --- 41,56 ---- * - \link CBM::UI user interface\endlink. Higher-level core abstractions for UI. * * Another major element is \ref howto_kb "knowledge-base", which can for instance enlight * incompatibilities between options, and which is used in * \link CBM::Plan benchmark plans\endlink. * ! * \section behaviour Hacking ? * ! * Here are few entry points, mainly for contributors : ! * - \ref howto_kb "XML knowledge base", ! * - \ref new_compiler_support "Supporting a new compiler", ! * - \ref improve_compiler_support "Improving or fixing logic for a supported compiler", ! * - \ref howto_new_package_support "Adding a new package", ! * - \ref howto_new_benchmark_support "Adding a new benchmark". * */ |
From: Frederic T. <xf...@us...> - 2007-05-01 19:43:21
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Compiler In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv19655 Modified Files: Compiler-Option-Description.h Log Message: Updated documentation. Index: Compiler-Option-Description.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Compiler/Compiler-Option-Description.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Compiler-Option-Description.h 16 Apr 2007 16:53:47 -0000 1.7 --- Compiler-Option-Description.h 1 May 2007 19:43:18 -0000 1.8 *************** *** 36,39 **** --- 36,40 ---- /** \brief Interface helping to describe compiler' option. + * * Compiler options can be described through XML files to provide both * documentation to end-users and compatility related informations to *************** *** 89,96 **** virtual std::string Option(void); virtual int CompilationTwoPassNeeded(void); virtual int CompilationPass(void); virtual std::string CompilationFirstPassOption(void); - virtual std::string Use(void); --- 90,111 ---- virtual std::string Option(void); + /** \brief Detect two-passes' compilations + * \return Returns 1 if current option need two-passes */ virtual int CompilationTwoPassNeeded(void); + + /** \brief Returns compilation-pass number + * + * This method should be called only if CompilationTwoPassNeeded() returns 1. + * + * \return integer (0, 1 or 2 at this time). */ virtual int CompilationPass(void); + + /** \brief Returns related option in first pass + * + * When option is only meanful in a second pass, this method can be used + * to get related first-pass compilation option that makes it revelant. + * + * \return Related option in first-pass */ virtual std::string CompilationFirstPassOption(void); virtual std::string Use(void); *************** *** 99,106 **** }; ! /** \brief Interface to get and initialise known compiler's options' informations * CBM::Compiler uses a CBM::CompilerOptionDescriptions instance to get ! * option descriptions for a given compiler/compiler's version and for analyzing ! * compatibility bettween options. */ class CompilerOptionDescriptions --- 114,122 ---- }; ! /** \brief Interface to get and initialize known compiler's options' informations ! * * CBM::Compiler uses a CBM::CompilerOptionDescriptions instance to get ! * option descriptions from XML files for compiler/compiler's version and ! * to analyze compatibility bettween options. */ class CompilerOptionDescriptions *************** *** 115,120 **** protected: ! /** Parse a XML description file ! * \param _fileName XML file to parse */ virtual void parse(std::string _fileName); --- 131,142 ---- protected: ! /** Parse a XML description file. ! * ! * This initialize internal structures and child CBM::CompilerOptionDescription ! * instances. ! * ! * \param _fileName XML file to parse ! * \sa Description() ! * \sa DescriptionNumber() */ virtual void parse(std::string _fileName); *************** *** 126,129 **** --- 148,153 ---- std::string _baseDir); + /** Retrive description file used + * \param std::string for description file name */ virtual std::string DescriptionFile(void); *************** *** 136,149 **** * \param _index Index of the description * \return Option's description ! * \sa DescriptionNumber(); */ virtual CompilerOptionDescription *Description(int _index); /** Returns a description by its id * \param _id description's ID ! * \return Option's description */ virtual CompilerOptionDescription *Description(std::string _id); virtual CompilerOptionDescription *DescriptionLitteral(std::string _litt); virtual CBM_COM *Compiler(void); --- 160,183 ---- * \param _index Index of the description * \return Option's description ! * \sa DescriptionNumber() ! * \sa Description(std::string _id) ! * \sa DescriptionLitteral(std::string _litt) */ virtual CompilerOptionDescription *Description(int _index); /** Returns a description by its id * \param _id description's ID ! * \return Option's description ! * \sa Description(int _index) ! * \sa DescriptionLitteral(std::string _litt) */ virtual CompilerOptionDescription *Description(std::string _id); + /** Returns a description by its litteral option + * \return Option's description + * \sa Description(std::string _id) + * \sa Description(int _index) */ virtual CompilerOptionDescription *DescriptionLitteral(std::string _litt); + /** Retrieve associated compiler + * \return Compiler used to initialize descriptions */ virtual CBM_COM *Compiler(void); *************** *** 151,155 **** virtual ~CompilerOptionDescriptions(); }; - } --- 185,188 ---- |
From: Frederic T. <xf...@us...> - 2007-05-01 19:39:15
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv18108 Modified Files: Makefile.am Log Message: New doxygen .h files. Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/Makefile.am,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Makefile.am 1 May 2007 14:38:56 -0000 1.17 --- Makefile.am 1 May 2007 19:39:11 -0000 1.18 *************** *** 21,25 **** doxygen_headers = howto_kb.h \ howto_improve_compiler_support.h \ ! howto_new_compiler_support.h noinst_HEADERS = cloptions.h main.h $(doxygen_headers) $(libcompbenchmarks_la_SOURCES:.cpp=.h) # !!! --- 21,27 ---- doxygen_headers = howto_kb.h \ howto_improve_compiler_support.h \ ! howto_new_compiler_support.h \ ! howto_new_package_support.h \ ! howto_new_benchmark_support.h noinst_HEADERS = cloptions.h main.h $(doxygen_headers) $(libcompbenchmarks_la_SOURCES:.cpp=.h) # !!! |
From: Frederic T. <xf...@us...> - 2007-05-01 19:37:22
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv17350 Added Files: howto_new_benchmark_support.h howto_new_package_support.h Log Message: First import. --- NEW FILE: howto_new_package_support.h --- /* ---------------------------------------------------------------------------- $Id: howto_new_package_support.h,v 1.1 2007/05/01 19:37:15 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #ifndef H_CBMHOWTO_NEW_PACKAGE_SUPPORT #define H_CBMHOWTO_NEW_PACKAGE_SUPPORT /*! \page howto_new_package_support Supporting a new package * * \section howto_new_package_support_introduction Introduction * * Here's the methodology to make a package supported by CompBenchmarks; * CompBenchmarks has to know how to download, check, extract, configure and * make it. * * As a reminder, a package in CompBenchmarks is a file (e.g. archive) that * provide a source for a given version of a software. This software can be * either dedicated to benchmarking, or is just used as a real-word application * to get some performance indicators. * * \section howto_new_package_support_core C++ core * * You should build a couple of files in source root; if your package's * name is Foo, you'll have to create * ./SupportedBenchmarks/Benchmark-FOO.cpp and Benchmark-FOO.h. * * If package is Foo::Test or if its hold others extra characters, * they should be replaced by underscore. Note that the minus sign may have * a special meaning, so it should be avoided in package's name. * * * Remember to update ./SupportedBenchmarks/Makefile.am. * * Take a look at ./SupportedBenchmarks/Benchmark-BENCHPP.* files for an * example. See CBM::Package for more information. * * \section howto_new_package_support_ref Referencing * * SupportedBenchmarks/benchmarks.list must be updated, once you've defined * \ref howto_new_benchmark_support "supported benchmarks" for your package. * * \section howto_new_package_support_ts Testsuite * * In source directory, please take a look at ./CBM-PI/t/02-CBMSystem-benchs.pl * file. Normaly updating SupportedBenchmarks/benchmarks.list is suffiscient, * and should not require changes yet. * */ #endif --- NEW FILE: howto_new_benchmark_support.h --- /* ---------------------------------------------------------------------------- $Id: howto_new_benchmark_support.h,v 1.1 2007/05/01 19:37:15 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #ifndef H_CBMHOWTO_NEW_BENCHMARK_SUPPORT #define H_CBMHOWTO_NEW_BENCHMARK_SUPPORT /*! \page howto_new_benchmark_support Supporting a new benchmark * * \section howto_new_benchmark_support_introduction Introduction * * Here's the methodology to make a benchmark supported by CompBenchmarks, * which have to know how to prepare, run, and get its performance indicator. * * Each benchmark is associated to a \ref howto_new_package_support "package". * * \section howto_new_benchmark_support_core C++ core * * You should build a couple of files in source root; if your package's * name is Foo, you'll have to create * ./SupportedBenchmarks/Benchmark-FOO.cpp and Benchmark-FOO.h. * * If package is Foo::Test or if its hold others extra characters, * they should be replaced by underscore. Note that the minus sign may have * a special meaning, so it should be avoided in package's name. * * * Remember to update ./SupportedBenchmarks/Makefile.am. * * Take a look at ./SupportedBenchmarks/Benchmark-BENCHPP.* files for an * example. See CBM::Benchmark for more information. * * \section howto_new_benchmark_support_ref Referencing * * SupportedBenchmarks/benchmarks.list must be updated. Each line of this file * holds same colon-separated elements defining a benchmark, in order : * - Internal benchmark name which a string consisting of internal package * identifier and benchmark identifier, separated by minus. Internal package * name is given by CBM::Package::Name(). * - Package filename without any extension or 'Benchmark-' prefix, * - Corresponding benchmark's class postfix. * * \section howto_new_benchmark_support_ts Testsuite * * In source directory, please take a look at ./CBM-PI/t/02-CBMSystem-benchs.pl * file. Normaly updating SupportedBenchmarks/benchmarks.list is suffiscient, * and should not require changes yet. * */ #endif |
From: Frederic T. <xf...@us...> - 2007-05-01 15:05:10
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4822 Modified Files: Config.h XML.h Log Message: Updated documentation. Index: XML.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base/XML.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** XML.h 1 May 2007 14:40:35 -0000 1.6 --- XML.h 1 May 2007 15:05:00 -0000 1.7 *************** *** 15,18 **** --- 15,19 ---- namespace CBM { /** \brief XML Attribute + * * Internal representation for an XML attribute. * \sa XMLNode *************** *** 27,31 **** public: ! /** Constructor * Initialise a new attribute. * \param _name Attribute's name --- 28,33 ---- public: ! /** Constructor. ! * * Initialise a new attribute. * \param _name Attribute's name *************** *** 34,54 **** std::string _value = ""); ! /** Get attribute's name ! \return a std::string */ virtual std::string Name(void); ! /** Get attribute's value ! \return a std::string */ virtual std::string Value(void); ! /** Set attribute's value ! \param _value new value (std::string) */ virtual void setValue(std::string _value); ! /** Append a string to attribute's value ! \param _value string to append */ virtual void append(std::string _value); virtual void setParent(class XMLNode *_parent); --- 36,62 ---- std::string _value = ""); ! /** Get attribute's name. ! * ! * \return a std::string */ virtual std::string Name(void); ! /** Get attribute's value. ! * ! * \return a std::string */ virtual std::string Value(void); ! /** Set attribute's value. ! * \param _value new value (std::string) */ virtual void setValue(std::string _value); ! /** Append a string to attribute's value. ! * ! * \param _value string to append */ virtual void append(std::string _value); + /** Set parent's node. + * + * \param _parent New parent's XMLNode for current instance. */ virtual void setParent(class XMLNode *_parent); *************** *** 58,61 **** --- 66,70 ---- /** \brief XML Node + * * Internal representation of an XML node. * \sa XMLAttribute *************** *** 76,80 **** virtual void unreference(class XMLNode *_child); public: ! /** Constructor * Initialise a new node. * \param _name Node's name --- 85,90 ---- virtual void unreference(class XMLNode *_child); public: ! /** Constructor. ! * * Initialise a new node. * \param _name Node's name *************** *** 85,126 **** virtual void unreference(XMLAttribute *_attribute); ! /** Get node's name ! \return a std::string */ virtual std::string Name(void); ! /** Get node's value ! \return a std::string */ virtual std::string Value(void); ! /** Set node's value ! \param _value new value (std::string) */ virtual void setValue(std::string _value); ! /** Append a string to node's value ! \param _value string to append */ virtual void append(std::string _value); ! /** Get childs' number * \return number of nodes held by current node * \sa getNode() */ virtual int nodeNumber(void); ! /** Get a child node according to its index * \return A node * \sa nodeNumber() */ virtual XMLNode *getNode(int _index); ! /** Get a child node according to its name * \return A node * \sa getChild() */ virtual XMLNode *getNode(std::string _name); ! /** Get attributes' number * \return number of attributes on current node * \sa getAttribute() */ virtual int attributeNumber(void); ! /** Get an attribute according to its name * \return An attribute * \sa getAttribute()() */ --- 95,144 ---- virtual void unreference(XMLAttribute *_attribute); ! /** Get node's name. ! * ! * \return a std::string */ virtual std::string Name(void); ! /** Get node's value. ! * \return a std::string */ virtual std::string Value(void); ! /** Set node's value. ! * ! * \param _value new value (std::string) */ virtual void setValue(std::string _value); ! /** Append a string to node's value. ! * ! * \param _value string to append */ virtual void append(std::string _value); ! /** Get childs' number. ! * * \return number of nodes held by current node * \sa getNode() */ virtual int nodeNumber(void); ! /** Get a child node according to its index. ! * * \return A node * \sa nodeNumber() */ virtual XMLNode *getNode(int _index); ! /** Get a child node according to its name. ! * * \return A node * \sa getChild() */ virtual XMLNode *getNode(std::string _name); ! /** Get attributes' number. ! * * \return number of attributes on current node * \sa getAttribute() */ virtual int attributeNumber(void); ! /** Get an attribute according to its name. ! * * \return An attribute * \sa getAttribute()() */ *************** *** 132,136 **** virtual XMLAttribute *getAttribute(int _index); ! /** Add a node into current node * \param _child node to add * \return node added (_child) --- 150,155 ---- virtual XMLAttribute *getAttribute(int _index); ! /** Add a node into current node. ! * * \param _child node to add * \return node added (_child) *************** *** 138,142 **** virtual XMLNode *add(XMLNode *_child); ! /** Add a node into current node * \param _name name of the node * \param _value value of the node (optional) --- 157,162 ---- virtual XMLNode *add(XMLNode *_child); ! /** Add a node into current node. ! * * \param _name name of the node * \param _value value of the node (optional) *************** *** 146,150 **** std::string _value = ""); ! /** Add an attribute on current node * \param _attribute to add * \return attribute added (_attribute) --- 166,171 ---- std::string _value = ""); ! /** Add an attribute on current node. ! * * \param _attribute to add * \return attribute added (_attribute) *************** *** 153,157 **** ! /** Add an attribute on current node * \param _name name of the attribute * \param _value value of the attribute (optional) --- 174,179 ---- ! /** Add an attribute on current node. ! * * \param _name name of the attribute * \param _value value of the attribute (optional) *************** *** 161,165 **** std::string _value = ""); ! /** Get textual (XML) representation of the node * Build a string corresponding to the XML elements of current node and * childs (includes attributes and value). --- 183,188 ---- std::string _value = ""); ! /** Get textual (XML) representation of the node. ! * * Build a string corresponding to the XML elements of current node and * childs (includes attributes and value). *************** *** 171,174 **** --- 194,198 ---- virtual ~XMLNode(); }; + } Index: Config.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base/Config.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Config.h 1 May 2007 14:40:35 -0000 1.8 --- Config.h 1 May 2007 15:05:00 -0000 1.9 *************** *** 14,19 **** namespace CBM { ! /** \brief Interface to configuration ! * Class proposing API to libcompbenchmarks configuration parameters */ class Config { --- 14,20 ---- namespace CBM { ! /** \brief Interface to configuration handling. ! * ! * This class provides API to use libcompbenchmarks configuration parameters. */ class Config { *************** *** 45,48 **** --- 46,50 ---- /** Check if the given directory holds patches. + * * Check if given arguments really holds patches needed by libcompbenchmarks. * \param dir directory to check *************** *** 52,55 **** --- 54,58 ---- /** Retrieves the a path from configuration. + * * Referenced as default since default values may be modified by user * using CBM::Config methods, but may have been left unchanged. *************** *** 59,63 **** virtual std::string defaultPath(CBM::System::Dir dir); ! /** Get a benchmark's XML description * This internal convenience method to get the stored or in-memory XML * description of a benchmark. --- 62,67 ---- virtual std::string defaultPath(CBM::System::Dir dir); ! /** Get a benchmark's XML description. ! * * This internal convenience method to get the stored or in-memory XML * description of a benchmark. *************** *** 67,71 **** virtual XMLNode *bmNode(std::string _bid); ! /** Get a path XML description * This internal convenience method to get the stored or in-memory XML * description of paths used by libcompbenchmarks. --- 71,76 ---- virtual XMLNode *bmNode(std::string _bid); ! /** Get a path XML description. ! * * This internal convenience method to get the stored or in-memory XML * description of paths used by libcompbenchmarks. *************** *** 78,81 **** --- 83,87 ---- public: /** Constructor. + * * Initialize a Config object by reading the given XML file. * \param _filename XML Configuration file. *************** *** 88,92 **** virtual XMLNode *planNode(void); ! /** Get package status * \param _bid CBM::Package ID * \return Status. --- 94,99 ---- virtual XMLNode *planNode(void); ! /** Get package status. ! * * \param _bid CBM::Package ID * \return Status. *************** *** 94,98 **** virtual CBM::Package::Status getStatus(std::string _bid); ! /** Set package's status * \param _bid CBM::Package ID * \param _status New status */ --- 101,106 ---- virtual CBM::Package::Status getStatus(std::string _bid); ! /** Set package's status. ! * * \param _bid CBM::Package ID * \param _status New status */ *************** *** 100,104 **** CBM::Package::Status _status); ! /** Set benchmark's context * For a benchmark, a context keeps the compiler and options used at compilation * time. This prevent re-compilation when performance evaluation on same --- 108,113 ---- CBM::Package::Status _status); ! /** Set benchmark's context. ! * * For a benchmark, a context keeps the compiler and options used at compilation * time. This prevent re-compilation when performance evaluation on same *************** *** 115,119 **** class CompilerOptions *_currentOptions); ! /** Retrieve compiler previously used * Restore compiler stored by setContext() * \param _bid Benchmark's ID --- 124,129 ---- class CompilerOptions *_currentOptions); ! /** Retrieve compiler previously used. ! * * Restore compiler stored by setContext() * \param _bid Benchmark's ID *************** *** 122,126 **** virtual std::string getContextCompiler(std::string _bid); ! /** Retrieves options previously used * Restore options stored by setContext() * \param _bid Benchmark's ID --- 132,137 ---- virtual std::string getContextCompiler(std::string _bid); ! /** Retrieves options previously used. ! * * Restore options stored by setContext() * \param _bid Benchmark's ID *************** *** 128,132 **** virtual std::string getContextCompilerOptions(std::string _bid); ! /** Check if previous context matches previous one * This method avoids useless compilation passes when a benchmark/package is * asked to be compilated with same options. --- 139,144 ---- virtual std::string getContextCompilerOptions(std::string _bid); ! /** Check if previous context matches previous one. ! * * This method avoids useless compilation passes when a benchmark/package is * asked to be compilated with same options. *************** *** 141,145 **** class CompilerOptions *_currentOptions); ! /** Reset benchmark's context * Used in CBM::Package::Release() to invalidate current context. * \param _bid Benchmark's ID --- 153,158 ---- class CompilerOptions *_currentOptions); ! /** Reset benchmark's context. ! * * Used in CBM::Package::Release() to invalidate current context. * \param _bid Benchmark's ID *************** *** 148,152 **** virtual void contextReset(std::string _bid); ! /** Returns a libcompbenchmarks path * Many default/user set paths are used to store packages, uncompress or compile * them and so on. This method retrieves them. --- 161,166 ---- virtual void contextReset(std::string _bid); ! /** Returns a libcompbenchmarks path. ! * * Many default/user set paths are used to store packages, uncompress or compile * them and so on. This method retrieves them. *************** *** 155,163 **** virtual std::string Path(CBM::System::Dir dir); ! /** Returns related XML configuration data as std::string * \return Configuration (XML dump to std::string) */ virtual std::string str(void); ! /** Set a new Plan node * A plan holds all options to apply to selected compilers for a bunch of * benchmarks. This method set these data. --- 169,179 ---- virtual std::string Path(CBM::System::Dir dir); ! /** Returns related XML configuration data as std::string. ! * * \return Configuration (XML dump to std::string) */ virtual std::string str(void); ! /** Set a new Plan node. ! * * A plan holds all options to apply to selected compilers for a bunch of * benchmarks. This method set these data. *************** *** 167,182 **** virtual void setPlan(XMLNode *_plan); ! /** Detect changes * \return 1 if configuration has changed since last save. */ virtual int Changes(void); ! /** Don't save changes * Disable automatic saving of configuration changes */ virtual void ignoreChanges(void); /** Destructor ! * !!! May (re-)write file specified in Config() construction if Changes() returns 1 ! * and ignoreChanges() has not been called. */ virtual ~Config(); }; --- 183,201 ---- virtual void setPlan(XMLNode *_plan); ! /** Detect changes. ! * * \return 1 if configuration has changed since last save. */ virtual int Changes(void); ! /** Don't save changes. ! * * Disable automatic saving of configuration changes */ virtual void ignoreChanges(void); /** Destructor ! * ! * TODO ? May (re-)write file specified in Config() construction if Changes() ! * returns 1 and ignoreChanges() has not been called. */ virtual ~Config(); }; |
From: Frederic T. <xf...@us...> - 2007-05-01 14:51:07
|
Update of /cvsroot/compbench/CompBenchmarks++/CBM-PI In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv32116 Modified Files: Makefile.am Log Message: Changes in dependent headers. Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/CBM-PI/Makefile.am,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.am 9 Apr 2007 10:13:11 -0000 1.16 --- Makefile.am 1 May 2007 14:50:41 -0000 1.17 *************** *** 19,22 **** --- 19,23 ---- $(top_srcdir)/libcompbenchmarks/Benchmark/Benchmark.h \ $(top_srcdir)/libcompbenchmarks/Compiler/Compiler.h \ + $(top_srcdir)/libcompbenchmarks/Compiler/Compiler-Version.h \ $(top_srcdir)/libcompbenchmarks/Compiler/Compiler-Options.h \ $(top_srcdir)/libcompbenchmarks/Compiler/Compiler-OptionSet.h \ *************** *** 26,44 **** $(top_srcdir)/libcompbenchmarks/Base/Result.h \ $(top_srcdir)/libcompbenchmarks/Plan/Plan.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Atom.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Str.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Logic.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Math.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Version.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Cmp.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Cond.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Var.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Array.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Function.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Block.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Stack.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Loop.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Include.h \ - $(top_srcdir)/libcompbenchmarks/CEL/CEL-Reader.h \ $(top_srcdir)/CBM-PI/Glue.h --- 27,30 ---- |
From: Frederic T. <xf...@us...> - 2007-05-01 14:40:40
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv28058 Modified Files: Config.h XML.h Log Message: Updated documentation. Index: XML.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base/XML.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XML.h 25 Jan 2007 16:57:09 -0000 1.5 --- XML.h 1 May 2007 14:40:35 -0000 1.6 *************** *** 168,171 **** --- 168,172 ---- virtual std::string str(int _indent = 0); + /** Destructor */ virtual ~XMLNode(); }; Index: Config.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base/Config.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Config.h 19 Apr 2007 17:51:09 -0000 1.7 --- Config.h 1 May 2007 14:40:35 -0000 1.8 *************** *** 100,127 **** CBM::Package::Status _status); virtual void setContext(std::string _bid, class Compiler *_currentCompiler, class CompilerOptions *_currentOptions); virtual std::string getContextCompiler(std::string _bid); - virtual std::string getContextCompilerOptions(std::string _bid); virtual int contextMatches(std::string _bid, class Compiler *_currentCompiler, class CompilerOptions *_currentOptions); virtual void contextReset(std::string _bid); virtual std::string Path(CBM::System::Dir dir); virtual std::string str(void); virtual void setPlan(XMLNode *_plan); virtual int Changes(void); virtual void ignoreChanges(void); ! /** Destructor */ virtual ~Config(); }; --- 100,182 ---- CBM::Package::Status _status); + /** Set benchmark's context + * For a benchmark, a context keeps the compiler and options used at compilation + * time. This prevent re-compilation when performance evaluation on same + * compiler/options pairs is asked (e.g. through CBM::Benchmark::Bench(). + * \param _bid Benchmark's ID + * \param _currrentCompiler Compiler instance + * \param _currentOptions Options + * \sa contextMatches() + * \sa CBM::Compiler + * \sa CBM::Benchmark + * \sa CBM::Package */ virtual void setContext(std::string _bid, class Compiler *_currentCompiler, class CompilerOptions *_currentOptions); + /** Retrieve compiler previously used + * Restore compiler stored by setContext() + * \param _bid Benchmark's ID + * \return std::string holding compiler's binary + */ virtual std::string getContextCompiler(std::string _bid); + /** Retrieves options previously used + * Restore options stored by setContext() + * \param _bid Benchmark's ID + * \return std::string holding options */ + virtual std::string getContextCompilerOptions(std::string _bid); + + /** Check if previous context matches previous one + * This method avoids useless compilation passes when a benchmark/package is + * asked to be compilated with same options. + * \param _bid Benchmark's ID + * \param _currrentCompiler Compiler instance + * \param _currentOptions Options + * \return 1 if ok, 0 is context doesn't match. + * \sa setContext() + */ virtual int contextMatches(std::string _bid, class Compiler *_currentCompiler, class CompilerOptions *_currentOptions); + /** Reset benchmark's context + * Used in CBM::Package::Release() to invalidate current context. + * \param _bid Benchmark's ID + * \sa contextMatches() + */ virtual void contextReset(std::string _bid); + /** Returns a libcompbenchmarks path + * Many default/user set paths are used to store packages, uncompress or compile + * them and so on. This method retrieves them. + * \parma dir Directory/Path ID + * \return Path as std::string */ virtual std::string Path(CBM::System::Dir dir); + /** Returns related XML configuration data as std::string + * \return Configuration (XML dump to std::string) */ virtual std::string str(void); + /** Set a new Plan node + * A plan holds all options to apply to selected compilers for a bunch of + * benchmarks. This method set these data. + * \param _plan New plan settings + * \sa CBM::Plan + */ virtual void setPlan(XMLNode *_plan); + /** Detect changes + * \return 1 if configuration has changed since last save. + */ virtual int Changes(void); + /** Don't save changes + * Disable automatic saving of configuration changes */ virtual void ignoreChanges(void); ! /** Destructor ! * !!! May (re-)write file specified in Config() construction if Changes() returns 1 ! * and ignoreChanges() has not been called. */ virtual ~Config(); }; |
From: Frederic T. <xf...@us...> - 2007-05-01 14:40:17
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27952 Modified Files: main.cpp Log Message: Banner added. Index: main.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/main.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** main.cpp 28 Dec 2006 13:31:42 -0000 1.7 --- main.cpp 1 May 2007 14:40:11 -0000 1.8 *************** *** 1,2 **** --- 1,10 ---- + /* ---------------------------------------------------------------------------- + $Id$ + + This is free software. + For details, see the GNU Public License in the COPYING file, or + Look http://www.fsf.org + ------------------------------------------------------------------------- */ + #include <config.h> #include <libcompbenchmarks.h> |
From: Frederic T. <xf...@us...> - 2007-05-01 14:39:32
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27605 Modified Files: main.h Log Message: Updated documentation. Index: main.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/main.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** main.h 6 Feb 2007 19:35:59 -0000 1.9 --- main.h 1 May 2007 14:39:29 -0000 1.10 *************** *** 10,22 **** #define H_CBMMAIN ! /*! \mainpage CompBenchmarks Internals * * \section intro_sec A foreword * ! * This document presents source layout and organisation of CompBenchmarks. ! * As a reminder, this software has been released under the GPL license. * ! * It'd be useful for developpers or contributers, as well as for people ! * who like to get an overview about how things are done. * * New releases and complementory information can be found at --- 10,30 ---- #define H_CBMMAIN ! /*! \mainpage CompBenchmarks Reference Manual * * \section intro_sec A foreword * ! * This document presents concepts, source layout and organisation of CompBenchmarks. ! * As a reminder, this software has been released under the GPL license and aims to ! * provide a convenient environment to benchmark softwares using different compilers ! * and options on a variety of architectures. * ! * \subsection foreword_programs Programs ! * ! * CompBenchmarks is a package built around the libcompbenchmarks shared library, ! * which brings core functionnalities. It also comes with ! * compbenchmarks-core, other programs and user interfaces that uses and interract with ! * libcompbenchmarks. ! * ! * \subsection foreword_moreinfo More informations * * New releases and complementory information can be found at *************** *** 25,35 **** * \section abstraction General organisation * ! * CompBenchmarks suite has been (re)written in C++, to add more flexibility. ! * Its core rely on a few abstracts (as in C++) definitions (concepts) : ! * - \link CBM::System operating system\endlink, ! * - \link CBM::Package package\endlink, ! * - \link CBM::Benchmark benchmark\endlink, ! * - \link CBM::Compiler compiler\endlink and \link CBM::CompilerOptions compilation options\endlink, ! * - \link CBM::UI user interface\endlink. * * Basically, operating system object is detected at CompBenchmarks --- 33,49 ---- * \section abstraction General organisation * ! * CompBenchmarks core relies on a few definitions : ! * - \link CBM::System operating system\endlink which provides abstraction interface for all supported operating systems, ! * - \link CBM::Package package\endlink; that's API to declare and handle packages. ! * - \link CBM::Benchmark benchmark\endlink; which uses packages to describe what are related benchmarks, ! * - \link CBM::Compiler compilers\endlink and \link CBM::CompilerOptions compilation options\endlink and \link CBM::CompilerOptionDescriptions descriptions\endlink, ! * - \link CBM::Plan benchmark plan\endlink. It stores and handles current benchmarking context, ! * - \link CBM::UI user interface\endlink. Higher-level core abstractions for UI. ! * ! * These concepts aims giving flexibility and should improve (re-)useability. ! * ! * Another major element is \ref howto_kb "knowledge-base", which can for instance enlight ! * incompatibilities between options, and which is used in ! * \link CBM::Plan benchmark plans\endlink. * * Basically, operating system object is detected at CompBenchmarks |
From: Frederic T. <xf...@us...> - 2007-05-01 14:39:03
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27227 Modified Files: Makefile.am Log Message: New doxygen .h files. Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/Makefile.am,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.am 22 Jan 2007 18:27:50 -0000 1.16 --- Makefile.am 1 May 2007 14:38:56 -0000 1.17 *************** *** 19,23 **** compbenchmarks_core_DEPENDENCIES = libcompbenchmarks/libcompbenchmarks.la ! noinst_HEADERS = cloptions.h main.h $(libcompbenchmarks_la_SOURCES:.cpp=.h) # !!! EXTRA_DIST = compbenchmarks-ui-perl Doxyfile compbenchmarks-ui-perl.1 compbenchmarks-core.pod compbenchmarks-core.1 --- 19,27 ---- compbenchmarks_core_DEPENDENCIES = libcompbenchmarks/libcompbenchmarks.la ! doxygen_headers = howto_kb.h \ ! howto_improve_compiler_support.h \ ! howto_new_compiler_support.h ! ! noinst_HEADERS = cloptions.h main.h $(doxygen_headers) $(libcompbenchmarks_la_SOURCES:.cpp=.h) # !!! EXTRA_DIST = compbenchmarks-ui-perl Doxyfile compbenchmarks-ui-perl.1 compbenchmarks-core.pod compbenchmarks-core.1 |
From: Frederic T. <xf...@us...> - 2007-05-01 14:38:25
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv27176 Added Files: howto_improve_compiler_support.h howto_kb.h howto_new_compiler_support.h Log Message: First import. --- NEW FILE: howto_new_compiler_support.h --- /* ---------------------------------------------------------------------------- $Id: howto_new_compiler_support.h,v 1.1 2007/05/01 14:38:18 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #ifndef H_CBMHOWTO_NEW_COMPILER_SUPPORT #define H_CBMHOWTO_NEW_COMPILER_SUPPORT /*! \page new_compiler_support Supporting a new compiler * * \section new_compiler_support_introduction Introduction * * This page presents a method to get a new compiler supported by * CompBenchmarks. Basically, "supported" means here : * - CompBenchmarks knows how to pass options to compiler, how to get its * version, and such things. This is a new C++ class. * - \ref howto_kb "Knowledge base" has been updated for this compiler, * - That testsuite is aware of it. * * \section new_compiler_support_core C++ core * * You should build a new directory in source root; if your compiler is * name Foo, corresponding directory should be * ./libcompbenchmarks/Compiler/Compiler-FOO/. * ./libcompbenchmarks/Compiler/Makefile.am needs to be updated, and * Makefile.am for your new directory must be created. * * You can take a look to ./libcompbenchmarks/Compiler/Compiler-TCC/* files * to get a example : it provides a straightforward inheritance of the * abstract CBM::Compiler class, which is used by all supported compilers. * * ./libcompbenchmarks/Compiler/Compiler.cpp must also be updated, since * its CBM::CompilerSelector class is used to detect if a given binary is * compatible with one of the supported compilers. * * \section new_compiler_support_kb Updating knowledge-base * * \ref howto_kb "Knowledge base page" is a good starting point. * * \section new_compiler_support_ts Testsuite * * In source directory, please take a look at ./CBM-PI/t/lib/compilers.pl * file. */ #endif --- NEW FILE: howto_improve_compiler_support.h --- /* ---------------------------------------------------------------------------- $Id: howto_improve_compiler_support.h,v 1.1 2007/05/01 14:38:18 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #ifndef H_CBMHOWTO_IMPROVE_COMPILER_SUPPORT #define H_CBMHOWTO_IMPROVE_COMPILER_SUPPORT /*! \page improve_compiler_support Improving compiler's support * * \section improve_compiler_support_introduction Introduction * * This page intends to provide clues in order to improve a supported compiler's * \ref howto_kb "knowledge base", including : * - Fixing option descriptions/logics, * - Introducing new options, * - Updating testsuite. * * As a reminder, the \ref howto_kb_logics "logic" in libcompbenchmarks * refers to the meta-informations that are provided to make software aware * of things like options incompatibilities, while * \ref howto_kb_xmltags "descriptions" are just plain text giving help * about options. * * \section improve_compiler_support_fix Updating logics and descriptions * * Either user interfaces or compbenchmarks-core program (using -qac \<compiler\> -A "<options>"), can enlight inconsistancies in option descriptions or * logics. Unless there is a bug in C++ core, modifying knowledge base files * is suffiscient to fix that. * * \ref howto_kb "Knowledge base page" should give you method to get the * files you'll have to modify to update logics and descriptions. * * Once done, you'll have to update testsuite. * * \section improve_compiler_support_ts Updating testsuite * * Since version 0.5.0, CompBenchmarks++ comes with a large testsuite that * must be updated according to modifications, including knowledge-base related * modifications. * * In source directory, please take a look at ./CBM-PI/t/lib/compilers.pl * file. * */ #endif --- NEW FILE: howto_kb.h --- /* ---------------------------------------------------------------------------- $Id: howto_kb.h,v 1.1 2007/05/01 14:38:18 xfred Exp $ This is free software. For details, see the GNU Public License in the COPYING file, or Look http://www.fsf.org ------------------------------------------------------------------------- */ #ifndef H_CBMHOWTO_KB #define H_CBMHOWTO_KB /*! \page howto_kb Knowledge base * * \section howto_kb_presentation Presentation * * Knowledge base (KB) is formerly XML files that describes known options for a given * compiler branch (eg. gcc version 2.95.x). These files are distrbuted throught many * directories, according to related compiler and branch. * * \section howto_kb_hierarchy Hierarchy * * KB can be found either in extracted tarball source at ./libcompbenchmarks/share/KB * or in $PREFIX/share/compbenchmarks/$VERSION/KB/share/compbenchmarks/0.5.0/KB/ when * version $VERSION of CompBenchmarks has been installed in $PREFIX directory * (--prefix option to ./configure). * * For convenience, we'll call this directory knowledge-base root directory ($KB_ROOT). * * \subsection howto_kb_compilers Compilers * * Each compiler has a dedicated directory right in root KB directory. Directory's name * is just compiler's name in lower case : like $KB_ROOT/g++ or $KB_ROOT/tcc for g++ * and tcc compilers. * * \subsection howto_kb_branches Branches * * Since various branches of a given compiler can propose various options or * behaviours, branch related directories have been introduced in compiler's * directories. For instance, g++/2.95.x and gcc/3.0.x can be found in KB root * directory. * * \subsection howto_kb_files Files * * For a supported compiler's branch, the description.xml file is mandatory and * is the entry point for internal option description logic. This file is used to * retrieve supported options. * * \section howto_kb_option_merging Option merging * * It's usual for a newer version of a given compiler to re-use part of options of * previous branches. This behaviour can be quickly traduced using the \<include/\> * directive. * * \section howto_kb_xmltags XML description tags * * This section gives complete list of XML tags supported in knowledge base files : * - \<options/\> is the main/root element of all files, * - \<option/\> introduces a new option, * - \<include/\> can be used to merge descriptions given by another file. * * See $KB_ROOT/gxx/2.95.x/description.xml for a complete sample. * * \section howto_kb_logics XML logic related tags * * Previous tags allow users to define options for a given compiler's branch. * The term 'logics' refers to checks applied to selected options within a context * (compiler, branch, architecture, and so on). Logics are valid XML blocks given * in \<option/\>; they can have many meanings : * - Option is implied by another, so that it should be useless in certains situations (\<logic-option-implied-by/\>), * - Option is exlusive within a set of options; that means it cannot be used if another option of the set has been spoted (\<logic-option-exlusive/\>). * - Option is known to disable or enable a features (e.g. symbol alignments); * an extended \<logic-option-exlusive/\> form may be used to detect such behaviours * and inform user that some options are known to be incompatibles. * * See $KB_ROOT/gxx/2.95.x/arch.xml for sample. * * \section howto_kb_further Further readings * * A look in previous sample files should make you able to : * - \ref improve_compiler_support "Improve or fix a compiler support", * - \ref new_compiler_support "Introduce support for a new compiler". * */ #endif |
From: Frederic T. <xf...@us...> - 2007-04-22 16:05:58
|
Update of /cvsroot/compbench/CompBenchmarks++/CBM-PI/t/lib In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv1899 Modified Files: Makefile.am Log Message: compilers.pl added. Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/CBM-PI/t/lib/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 17 Apr 2007 20:13:57 -0000 1.3 --- Makefile.am 22 Apr 2007 16:05:55 -0000 1.4 *************** *** 7,9 **** # ----------------------------------------------------------------------------- ! dist_noinst_DATA = libtest.pl \ No newline at end of file --- 7,9 ---- # ----------------------------------------------------------------------------- ! dist_noinst_DATA = libtest.pl compilers.pl \ No newline at end of file |
From: Frederic T. <xf...@us...> - 2007-04-22 16:05:05
|
Update of /cvsroot/compbench/CompBenchmarks++/CBM-PI/t In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv1509 Modified Files: 00-CBMSystem-public.pl 01-CBMSystem-protected.pl 02-CBMSystem-benchs.pl Log Message: ./lib in @INC. Index: 02-CBMSystem-benchs.pl =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/CBM-PI/t/02-CBMSystem-benchs.pl,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** 02-CBMSystem-benchs.pl 26 Jan 2007 13:09:57 -0000 1.7 --- 02-CBMSystem-benchs.pl 22 Apr 2007 16:04:52 -0000 1.8 *************** *** 4,7 **** --- 4,8 ---- use Test::More; + push(@INC, "lib"); require "libtest.pl"; Index: 01-CBMSystem-protected.pl =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/CBM-PI/t/01-CBMSystem-protected.pl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** 01-CBMSystem-protected.pl 21 Jan 2007 20:47:25 -0000 1.3 --- 01-CBMSystem-protected.pl 22 Apr 2007 16:04:52 -0000 1.4 *************** *** 3,6 **** --- 3,7 ---- use CBM; + push(@INC, "lib"); require "libtest.pl"; Index: 00-CBMSystem-public.pl =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/CBM-PI/t/00-CBMSystem-public.pl,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** 00-CBMSystem-public.pl 20 Mar 2007 20:29:55 -0000 1.6 --- 00-CBMSystem-public.pl 22 Apr 2007 16:04:52 -0000 1.7 *************** *** 3,6 **** --- 3,7 ---- use CBM; + push(@INC, "lib"); require "libtest.pl"; |
From: Frederic T. <xf...@us...> - 2007-04-19 20:54:17
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/System In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv7556 Modified Files: System-Unix.cpp Log Message: Remove leading '0x' from hostid(), when presents. Index: System-Unix.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/System/System-Unix.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** System-Unix.cpp 17 Apr 2007 18:20:14 -0000 1.3 --- System-Unix.cpp 19 Apr 2007 20:54:14 -0000 1.4 *************** *** 100,104 **** --- 100,115 ---- { std::string r = exec0("hostid 2> /dev/null"); + std::string tmp; + Chomp(r); + + if (r.size()>2) { + tmp=r.substr(0, 2); + if (tmp=="0x") { + tmp=r.substr(2, r.size()-2); + r=tmp; + } + } + return(r); } |
From: Frederic T. <xf...@us...> - 2007-04-19 20:50:17
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Compiler In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv6060 Modified Files: Compiler.cpp Log Message: Improvements on error reporting in relativeDescriptionDirectory(). Important fix in that method. Index: Compiler.cpp =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Compiler/Compiler.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Compiler.cpp 17 Apr 2007 17:53:43 -0000 1.13 --- Compiler.cpp 19 Apr 2007 20:50:11 -0000 1.14 *************** *** 143,147 **** if (v_int<c_int) continue; ! if ((differences>v_int-c_int) && (v_int-c_int>=0)) { differences=v_int-c_int; --- 143,147 ---- if (v_int<c_int) continue; ! if (((differences>v_int-c_int) || (differences<0)) && (v_int-c_int>=0)) { differences=v_int-c_int; *************** *** 150,155 **** } ! if (differences<0) ! return("!!! this version is not supported and no compatibility found."); return(result); --- 150,158 ---- } ! if (differences<0) { ! result="!!! version '"; ! result+=_version; ! result+="' is not supported and no compatibility found."; ! } return(result); |
From: Frederic T. <xf...@us...> - 2007-04-19 17:51:15
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4878 Modified Files: Config.h Log Message: Doxygen documentation updated. Index: Config.h =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/Base/Config.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Config.h 25 Jan 2007 22:15:59 -0000 1.6 --- Config.h 19 Apr 2007 17:51:09 -0000 1.7 *************** *** 15,48 **** namespace CBM { /** \brief Interface to configuration ! * Class proposing API to libbenchmarks configuration parameters and run context. */ class Config { protected: XMLNode *root; XMLNode *benchmarks; XMLNode *paths; XMLNode *plan; int changes; /** Check if the given directory holds patches. ! * Check if given arguments holds patches needed by libcompbenchmarks. * \param dir directory to check ! * \return non-null if ok. */ virtual int verifyPatchDirectory(std::string dir); virtual std::string defaultPath(CBM::System::Dir dir); virtual XMLNode *bmNode(std::string _bid); virtual XMLNode *pathNode(CBM::System::Dir dir); public: ! /** Constructor */ Config(std::string _filename); virtual XMLNode *planNode(void); virtual CBM::Package::Status getStatus(std::string _bid); virtual void setStatus(std::string _bid, CBM::Package::Status _status); --- 15,100 ---- namespace CBM { /** \brief Interface to configuration ! * Class proposing API to libcompbenchmarks configuration parameters */ class Config { protected: + /** Root XML node given by configuration file + * \sa Config() + */ XMLNode *root; + /** Benchmarks' XML node found. + * \sa root + */ XMLNode *benchmarks; + + /** Default paths configuration. + * \sa root + * \sa defaultPath + */ XMLNode *paths; + + /** Planned benchmarks' description. + * \sa root + */ XMLNode *plan; + /** Boolean to check if configuration was changed. + * \sa Changes() + */ int changes; /** Check if the given directory holds patches. ! * Check if given arguments really holds patches needed by libcompbenchmarks. * \param dir directory to check ! * \return 0 on error. */ virtual int verifyPatchDirectory(std::string dir); + /** Retrieves the a path from configuration. + * Referenced as default since default values may be modified by user + * using CBM::Config methods, but may have been left unchanged. + * \param dir Directory type. + * \return Path to directory. + * \sa paths */ virtual std::string defaultPath(CBM::System::Dir dir); + /** Get a benchmark's XML description + * This internal convenience method to get the stored or in-memory XML + * description of a benchmark. + * \param _bid Benchmark ID. + * \return XML Description. + * \sa CBM::Benchmark */ virtual XMLNode *bmNode(std::string _bid); + + /** Get a path XML description + * This internal convenience method to get the stored or in-memory XML + * description of paths used by libcompbenchmarks. + * \param dir Directory type. + * \return XML Description. + * \sa CBM::Benchmark */ + virtual XMLNode *pathNode(CBM::System::Dir dir); public: ! /** Constructor. ! * Initialize a Config object by reading the given XML file. ! * \param _filename XML Configuration file. ! */ Config(std::string _filename); + /** Get XML plan node + * Used by CBM::Plan to get status of planified benchmarks and contexts. + * \return XML Node holding plan configuration and settings */ virtual XMLNode *planNode(void); + /** Get package status + * \param _bid CBM::Package ID + * \return Status. + * \sa setStatus() */ virtual CBM::Package::Status getStatus(std::string _bid); + + /** Set package's status + * \param _bid CBM::Package ID + * \param _status New status */ virtual void setStatus(std::string _bid, CBM::Package::Status _status); |
From: Frederic T. <xf...@us...> - 2007-04-18 16:49:25
|
Update of /cvsroot/compbench/CompBenchmarks++ In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv8187 Modified Files: configure.in Log Message: tcc added in XML KB. Index: configure.in =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/configure.in,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** configure.in 17 Apr 2007 19:22:01 -0000 1.28 --- configure.in 18 Apr 2007 16:49:19 -0000 1.29 *************** *** 285,288 **** --- 285,289 ---- libcompbenchmarks/share/perl/Makefile libcompbenchmarks/share/KB/Makefile + libcompbenchmarks/share/KB/tcc/0.9.x/Makefile libcompbenchmarks/share/KB/gxx/2.95.x/Makefile libcompbenchmarks/share/KB/gxx/3.0.x/Makefile *************** *** 294,297 **** --- 295,299 ---- libcompbenchmarks/share/KB/gcc/3.0.x/Makefile libcompbenchmarks/share/KB/gcc/3.1.x/Makefile + libcompbenchmarks/share/KB/tcc/Makefile libcompbenchmarks/share/KB/gxx/Makefile libcompbenchmarks/share/KB/g++/Makefile |
From: Frederic T. <xf...@us...> - 2007-04-18 16:48:26
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv7800 Modified Files: Makefile.am Log Message: tcc added. Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Makefile.am 17 Apr 2007 17:28:17 -0000 1.3 --- Makefile.am 18 Apr 2007 16:48:22 -0000 1.4 *************** *** 8,10 **** # ----------------------------------------------------------------------------- ! SUBDIRS = gxx g++ gcc \ No newline at end of file --- 8,10 ---- # ----------------------------------------------------------------------------- ! SUBDIRS = gxx g++ gcc tcc \ No newline at end of file |
From: Frederic T. <xf...@us...> - 2007-04-18 16:44:01
|
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/3.1.x In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv5970 Modified Files: arch.xml Log Message: XML fixes; sse,387 also fixed. Index: arch.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/3.1.x/arch.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** arch.xml 17 Apr 2007 19:25:52 -0000 1.1 --- arch.xml 18 Apr 2007 16:43:45 -0000 1.2 *************** *** 66,70 **** <value>-mfpmath=sse</value> <short-description>Use SSE floating point instruction set</short-description> ! <editor-description copy-id="fpmath-387"> <logic> <logic-option-exclusive on="kb-option-cpu"/> --- 66,70 ---- <value>-mfpmath=sse</value> <short-description>Use SSE floating point instruction set</short-description> ! <editor-description copy-id="fpmath-387"/> <logic> <logic-option-exclusive on="kb-option-cpu"/> *************** *** 73,79 **** <option id="fpmath-sse-387"> ! <value>-mfpmath=sse</value> <short-description>Use SSE floating point instruction set with 387 coprocessor</short-description> ! <editor-description copy-id="fpmath-387"> <logic> <logic-option-exclusive on="kb-option-cpu"/> --- 73,79 ---- <option id="fpmath-sse-387"> ! <value>-mfpmath=sse,387</value> <short-description>Use SSE floating point instruction set with 387 coprocessor</short-description> ! <editor-description copy-id="fpmath-387"/> <logic> <logic-option-exclusive on="kb-option-cpu"/> *************** *** 91,95 **** </editor-description> <logic> ! <logic-option-exclusive on="alignment-disabled" value="0"/> <logic-option-exclusive on="double-alignment"/> </logic> --- 91,95 ---- </editor-description> <logic> ! <logic-option-exclusive on="alignment-disabled" value="1"/> <logic-option-exclusive on="double-alignment"/> </logic> *************** *** 106,111 **** </option> ! <option id="mmmx"> ! <value>-mmmx</value> <short-description>Enable MMX instruction set</short-description> <editor-description> --- 106,111 ---- </option> ! <option id="mmx"> ! <value>-mmx</value> <short-description>Enable MMX instruction set</short-description> <editor-description> *************** *** 117,138 **** </option> ! <option id="msse"> <value>-msse</value> <short-description>Enable SSE instruction set</short-description> ! <editor-description copy-id="mmmx"/> <logic/> </option> ! <option id="msse2"> <value>-msse2</value> <short-description>Enable SSE2 instruction set</short-description> ! <editor-description copy-id="mmmx"/> <logic/> </option> ! <option id="m3dnow"> <value>-m3dnow</value> <short-description>Enable 3Dnow! instruction set</short-description> ! <editor-description copy-id="mmmx"/> <logic/> </option> --- 117,138 ---- </option> ! <option id="sse"> <value>-msse</value> <short-description>Enable SSE instruction set</short-description> ! <editor-description copy-id="mmx"/> <logic/> </option> ! <option id="sse2"> <value>-msse2</value> <short-description>Enable SSE2 instruction set</short-description> ! <editor-description copy-id="mmx"/> <logic/> </option> ! <option id="3dnow"> <value>-m3dnow</value> <short-description>Enable 3Dnow! instruction set</short-description> ! <editor-description copy-id="mmx"/> <logic/> </option> |
From: Frederic T. <xf...@us...> - 2007-04-18 16:30:05
|
Update of /cvsroot/compbench/CompBenchmarks++/CBM-PI/t In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv714 Modified Files: 03-CBMCompilerSelector-public.pl Log Message: Interface parameters moved in ./lib/compilers.pl Index: 03-CBMCompilerSelector-public.pl =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/CBM-PI/t/03-CBMCompilerSelector-public.pl,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** 03-CBMCompilerSelector-public.pl 17 Apr 2007 20:08:08 -0000 1.8 --- 03-CBMCompilerSelector-public.pl 18 Apr 2007 16:30:01 -0000 1.9 *************** *** 12,16 **** --- 12,18 ---- use Test::More; + push(@INC, "lib"); require "libtest.pl"; + require "compilers.pl"; our $top_srcdir; *************** *** 18,58 **** my $sys; ! my %supportedVersions = ('g++' => '2.95.x 3.0.x 3.1.x', ! 'gcc' => '2.95.x 3.0.x 3.1.x', ! 'tcc' => '0.9.x'); ! my %references = ('compiler-fake-g++-4.1.1-13' => ! {'language' => 'C++', ! 'compiler' => 'g++', ! 'compilerName' => 'g++ (GCC) 4.1.2 20060901 (prerelease) (Debian 4.1.1-13)', ! 'compilerVersion' => '4.1.2 20060901 (prerelease)', ! 'vanilla' => '4.1.2', ! 'compatibility' => '3.1.x' ! }, ! 'compiler-fake-gcc-3.2.3-20-rh' => ! {'language' => 'C', ! 'compiler' => 'gcc', ! 'compilerName' => 'gcc (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-20)', ! 'compilerVersion' => '3.2.3', ! 'vanilla' => '3.2.3', ! 'compatibility' => '3.1.x' ! }, ! 'compiler-fake-gcc-4.1.1-13' => ! {'language' => 'C', ! 'compiler' => 'gcc', ! 'compilerName' => 'gcc (GCC) 4.1.2 20060901 (prerelease) (Debian 4.1.1-13)', ! 'compilerVersion' => '4.1.2 20060901 (prerelease)', ! 'vanilla' => '4.1.2', ! 'compatibility' => '3.1.x' ! }, ! 'compiler-fake-tcc-0.9.23', ! {'language' => 'C', ! 'compiler' => 'tcc', ! 'compilerName' => 'Tiny C Compiler tcc version 0.9.23', ! 'compilerVersion' => 'tcc version 0.9.23', ! 'vanilla' => '0.9.23', ! 'compatibility' => '0.9.x' ! } ! ); sub checkSupportedVersion { --- 20,47 ---- my $sys; ! our @COMPILER_FAKE_INTERFACES; ! our %COMPILER_FAKE_INTERFACES; ! our %COMPILER_FAKE_INTERFACE_PARAMETERS; ! my %supportedVersions; ! # = ('g++' => '2.95.x 3.0.x 3.1.x', ! # 'gcc' => '2.95.x 3.0.x 3.1.x', ! # 'tcc' => '0.9.x'); ! ! sub initSupportedVersions { ! my $cfi; ! my $rec; ! ! foreach $cfi (@COMPILER_FAKE_INTERFACES) { ! $rec=$COMPILER_FAKE_INTERFACES{$cfi}; ! if ($rec =~ /(.*?)-(.*)/) { ! my $cid = $1; ! my $branch = $2; ! $supportedVersions{$cid}.="$branch "; ! } ! } ! foreach(keys %supportedVersions) { ! } ! } sub checkSupportedVersion { *************** *** 73,77 **** } ! plan tests => (keys %references)*7; $sys = CBM::Init(); --- 62,66 ---- } ! plan tests => (keys %COMPILER_FAKE_INTERFACE_PARAMETERS)*7; $sys = CBM::Init(); *************** *** 81,88 **** my $co; my %refdata; ! foreach $reffile (keys %references) { $co=$CS->select("$top_srcdir/reference/$reffile"); ! %refdata=%{$references{$reffile}}; ok($refdata{language} eq $co->Language(), "$reffile: Language is $refdata{language}"); --- 70,78 ---- my $co; my %refdata; + initSupportedVersions(); ! foreach $reffile (keys %COMPILER_FAKE_INTERFACE_PARAMETERS) { $co=$CS->select("$top_srcdir/reference/$reffile"); ! %refdata=%{$COMPILER_FAKE_INTERFACE_PARAMETERS{$reffile}}; ok($refdata{language} eq $co->Language(), "$reffile: Language is $refdata{language}"); |