Changeset 298581c


Ignore:
Timestamp:
May 9, 2017, 1:56:38 PM (8 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
6182039
Parents:
c10ee66 (diff), f408e1a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:/u/cforall/software/cfa/cfa-cc

Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    rc10ee66 r298581c  
    99
    1010        try {
    11                 //Prevent the build from exceeding 30 minutes
    12                 timeout(60) {
     11                //Wrap build to add timestamp to command line
     12                wrap([$class: 'TimestamperBuildWrapper']) {
    1313
    14                         //Wrap build to add timestamp to command line
    15                         wrap([$class: 'TimestamperBuildWrapper']) {
     14                        stage('Build') {
    1615
    17                                 stage 'Build'
     16                                results = [null, null]
    1817
    19                                         results = [null, null]
     18                                parallel (
     19                                        gcc_6_x64: { trigger_build( 'gcc-6',   'x64', true  ) },
     20                                        gcc_6_x86: { trigger_build( 'gcc-6',   'x86', true  ) },
     21                                        gcc_5_x64: { trigger_build( 'gcc-5',   'x64', false ) },
     22                                        gcc_5_x86: { trigger_build( 'gcc-5',   'x86', false ) },
     23                                        gcc_4_x64: { trigger_build( 'gcc-4.9', 'x64', false ) },
     24                                        gcc_4_x86: { trigger_build( 'gcc-4.9', 'x86', false ) },
     25                                        clang_x64: { trigger_build( 'clang',   'x64', false ) },
     26                                        clang_x86: { trigger_build( 'clang',   'x86', false ) },
     27                                )
     28                        }
    2029
    21                                         parallel (
    22                                                 gcc_6_x64: { trigger_build( 'gcc-6',   'x64', true  ) },
    23                                                 gcc_6_x86: { trigger_build( 'gcc-6',   'x86', true  ) },
    24                                                 gcc_5_x64: { trigger_build( 'gcc-5',   'x64', false ) },
    25                                                 gcc_5_x86: { trigger_build( 'gcc-5',   'x86', false ) },
    26                                                 gcc_4_x64: { trigger_build( 'gcc-4.9', 'x64', false ) },
    27                                                 gcc_4_x86: { trigger_build( 'gcc-4.9', 'x86', false ) },
    28                                                 clang_x64: { trigger_build( 'clang',   'x64', false ) },
    29                                                 clang_x86: { trigger_build( 'clang',   'x86', false ) },
    30                                         )
    31 
    32                                 //Push latest changes to do-lang repo
    33                                 push_build()
    34                         }
     30                        //Push latest changes to do-lang repo
     31                        push_build()
    3532                }
    3633        }
     
    9996def push_build() {
    10097        //Don't use the build_stage function which outputs the compiler
    101         stage 'Push'
     98        stage('Push') {
    10299
    103100                status_prefix = 'Push'
     
    122119                //sh "GIT_SSH_COMMAND=\"ssh -v\" git push DoLang ${gitRefNewValue}:master"
    123120                echo('BUILD NOT PUSH SINCE DO-LANG SERVER WAS DOWN')
     121        }
    124122}
    125123
  • Jenkinsfile

    rc10ee66 r298581c  
    2828                wrap([$class: 'TimestamperBuildWrapper']) {
    2929
    30                         //Prevent the build from exceeding 60 minutes
    31                         timeout(60) {
    32 
    33                                 notify_server()
    34 
    35                                 prepare_build()
    36 
    37                                 checkout()
    38 
    39                                 build()
    40 
    41                                 test()
    42 
    43                                 benchmark()
    44 
    45                                 clean()
    46 
    47                                 build_doc()
    48 
    49                                 publish()
    50 
    51                                 notify_server()
    52                         }
     30                        notify_server()
     31
     32                        prepare_build()
     33
     34                        checkout()
     35
     36                        build()
     37
     38                        test()
     39
     40                        benchmark()
     41
     42                        clean()
     43
     44                        build_doc()
     45
     46                        publish()
     47
     48                        notify_server()
    5349                }
    5450        }
     
    8985def collect_git_info() {
    9086
     87        checkout scm
     88
    9189        //create the temporary output directory in case it doesn't already exist
    9290        def out_dir = pwd tmp: true
     
    9593        //parse git logs to find what changed
    9694        gitRefName = env.BRANCH_NAME
    97         dir("../${gitRefName}@script") {
    98                 sh "git reflog > ${out_dir}/GIT_COMMIT"
    99         }
     95        sh "git reflog > ${out_dir}/GIT_COMMIT"
    10096        git_reflog = readFile("${out_dir}/GIT_COMMIT")
    10197        gitRefOldValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][1]
     
    170166}
    171167
    172 def build_stage(String name) {
     168def build_stage(String name, Closure block ) {
    173169        stage_name = name
    174         stage name
     170        stage(name, block)
    175171}
    176172
     
    245241//Compilation script is done here but environnement set-up and error handling is done in main loop
    246242def checkout() {
    247         build_stage'Checkout'
     243        build_stage('Checkout') {
    248244                //checkout the source code and clean the repo
    249245                checkout scm
     
    254250                //Reset the git repo so no local changes persist
    255251                sh 'git reset --hard'
     252        }
    256253}
    257254
    258255def build() {
    259         build_stage'Build'
     256        build_stage('Build') {
    260257       
    261258                def install_dir = pwd tmp: true
     
    269266                //Compile the project
    270267                sh 'make -j 8 --no-print-directory V=0 install'
     268        }
    271269}
    272270
    273271def test() {
    274         build_stage'Test'
     272        build_stage('Test') {
    275273
    276274                //Run the tests from the tests directory
     
    282280                        sh 'make -C src/tests'
    283281                }
     282        }
    284283}
    285284
    286285def benchmark() {
    287         build_stage'Benchmark'
     286        build_stage('Benchmark') {
    288287
    289288                if( !do_benchmark ) return
     
    294293                //Append bench results
    295294                sh 'make -C src/benchmark --no-print-directory csv-data >> bench.csv'
     295        }
    296296}
    297297
    298298def clean() {
    299         build_stage'Cleanup'
     299        build_stage('Cleanup') {
    300300
    301301                //do a maintainer-clean to make sure we need to remake from scratch
    302302                sh 'make maintainer-clean > /dev/null'
     303        }
    303304}
    304305
    305306def build_doc() {
    306         build_stage'Documentation'
     307        build_stage('Documentation') {
    307308
    308309                if( !do_doc ) return
     
    315316                        make_doc()
    316317                }
     318        }
    317319}
    318320
    319321def publish() {
    320         build_stage'Publish'
     322        build_stage('Publish') {
    321323
    322324                if( !do_publish ) return
     
    324326                //Then publish the results
    325327                sh 'curl --silent --data @bench.csv http://plg2:8082/jenkins/publish > /dev/null || true'
     328        }
    326329}
    327330
  • src/Common/utility.h

    rc10ee66 r298581c  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Dec 14 21:25:25 2016
    13 // Update Count     : 31
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Fri May 5 11:03:00 2017
     13// Update Count     : 32
    1414//
    1515
     
    322322        std::string filename;
    323323
    324         CodeLocation()
     324    /// Create a new unset CodeLocation.
     325        CodeLocation()
    325326                : linenumber( -1 )
    326327                , filename("")
    327328        {}
    328329
     330    /// Create a new CodeLocation with the given values.
    329331        CodeLocation( const char* filename, int lineno )
    330332                : linenumber( lineno )
    331333                , filename(filename ? filename : "")
    332334        {}
     335
     336    bool isSet () const {
     337        return -1 != linenumber;
     338    }
     339
     340    bool isUnset () const {
     341        return !isSet();
     342    }
     343
     344        void unset () {
     345                linenumber = -1;
     346                filename = "";
     347        }
     348
     349        // Use field access for set.
    333350};
    334351
    335352inline std::string to_string( const CodeLocation& location ) {
    336         return location.linenumber >= 0 ? location.filename + ":" + std::to_string(location.linenumber) + " " : "";
     353        return location.isSet() ? location.filename + ":" + std::to_string(location.linenumber) + " " : "";
    337354}
    338355#endif // _UTILITY_H
  • src/benchmark/csv-data.c

    rc10ee66 r298581c  
    100100}
    101101
     102//-----------------------------------------------------------------------------
     103// single internal sched entry
     104mon_t mon1;
     105
     106condition cond1a;
     107condition cond1b;
     108
     109thread thrd1a { long long int * out; };
     110thread thrd1b {};
     111
     112void ?{}( thrd1a * this, long long int * out ) {
     113        this->out = out;
     114}
     115
     116void side1A( mon_t * mutex a, long long int * out ) {
     117        long long int StartTime, EndTime;
     118
     119        StartTime = Time();
     120        for( int i = 0;; i++ ) {
     121                signal(&cond1a);
     122                if( i > N ) break;
     123                wait(&cond1b);
     124        }
     125        EndTime = Time();
     126
     127        *out = ( EndTime - StartTime ) / N;
     128}
     129
     130void side1B( mon_t * mutex a ) {
     131        for( int i = 0;; i++ ) {
     132                signal(&cond1b);
     133                if( i > N ) break;
     134                wait(&cond1a);
     135        }
     136}
     137
     138void main( thrd1a * this ) { side1A( &mon1, this->out ); }
     139void main( thrd1b * this ) { side1B( &mon1 ); }
     140
     141long long int measure_1_sched_int() {
     142        long long int t;
     143        {
     144                thrd1a a = { &t };
     145                thrd1b b;
     146        }
     147        return t;
     148}
     149
     150//-----------------------------------------------------------------------------
     151// multi internal sched entry
     152mon_t mon2;
     153
     154condition cond2a;
     155condition cond2b;
     156
     157thread thrd2a { long long int * out; };
     158thread thrd2b {};
     159
     160void ?{}( thrd2a * this, long long int * out ) {
     161        this->out = out;
     162}
     163
     164void side2A( mon_t * mutex a, mon_t * mutex b, long long int * out ) {
     165        long long int StartTime, EndTime;
     166
     167        StartTime = Time();
     168        for( int i = 0;; i++ ) {
     169                signal(&cond2a);
     170                if( i > N ) break;
     171                wait(&cond2b);
     172        }
     173        EndTime = Time();
     174
     175        *out = ( EndTime - StartTime ) / N;
     176}
     177
     178void side2B( mon_t * mutex a, mon_t * mutex b ) {
     179        for( int i = 0;; i++ ) {
     180                signal(&cond2b);
     181                if( i > N ) break;
     182                wait(&cond2a);
     183        }
     184}
     185
     186void main( thrd2a * this ) { side2A( &mon1, &mon2, this->out ); }
     187void main( thrd2b * this ) { side2B( &mon1, &mon2 ); }
     188
     189long long int measure_2_sched_int() {
     190        long long int t;
     191        {
     192                thrd2a a = { &t };
     193                thrd2b b;
     194        }
     195        return t;
     196}
     197
     198//-----------------------------------------------------------------------------
     199// main loop
    102200int main()
    103201{
     
    106204        sout | measure_thread() | ',';
    107205        sout | measure_1_monitor_entry() | ',';
    108         sout | measure_2_monitor_entry() | endl;
    109 }
     206        sout | measure_2_monitor_entry() | ',';
     207        sout | measure_1_sched_int() | ',';
     208        sout | measure_2_sched_int() | endl;
     209}
Note: See TracChangeset for help on using the changeset viewer.