Changeset 833ba13


Ignore:
Timestamp:
Dec 2, 2020, 12:31:56 PM (10 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, master, new-ast-unique-expr
Children:
ddcedfe
Parents:
3d0560d (diff), a25f64b (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:software/cfa/cfa-cc

Files:
1 added
11 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    r3d0560d r833ba13  
    1717
    1818                                parallel (
    19                                         gcc_8_x86: { trigger_build( 'gcc-8',   'x86' ) },
    20                                         gcc_7_x86: { trigger_build( 'gcc-7',   'x86' ) },
    21                                         gcc_6_x86: { trigger_build( 'gcc-6',   'x86' ) },
    22                                         gcc_9_x64: { trigger_build( 'gcc-9',   'x64' ) },
    23                                         gcc_8_x64: { trigger_build( 'gcc-8',   'x64' ) },
    24                                         gcc_7_x64: { trigger_build( 'gcc-7',   'x64' ) },
    25                                         gcc_6_x64: { trigger_build( 'gcc-6',   'x64' ) },
    26                                         gcc_5_x64: { trigger_build( 'gcc-5',   'x64' ) },
    27                                         clang_x64: { trigger_build( 'clang',   'x64' ) },
     19                                        gcc_8_x86_old: { trigger_build( 'gcc-8',   'x86', false ) },
     20                                        gcc_7_x86_old: { trigger_build( 'gcc-7',   'x86', false ) },
     21                                        gcc_6_x86_old: { trigger_build( 'gcc-6',   'x86', false ) },
     22                                        gcc_9_x64_old: { trigger_build( 'gcc-9',   'x64', false ) },
     23                                        gcc_8_x64_old: { trigger_build( 'gcc-8',   'x64', false ) },
     24                                        gcc_7_x64_old: { trigger_build( 'gcc-7',   'x64', false ) },
     25                                        gcc_6_x64_old: { trigger_build( 'gcc-6',   'x64', false ) },
     26                                        gcc_5_x64_old: { trigger_build( 'gcc-5',   'x64', false ) },
     27                                        clang_x64_old: { trigger_build( 'clang',   'x64', false ) },
     28                                        // clang_x64_new: { trigger_build( 'clang',   'x64', true  ) },
    2829                                )
    2930                        }
     
    5960//===========================================================================================================
    6061
    61 def trigger_build(String cc, String arch) {
     62def trigger_build(String cc, String arch, boolean new_ast) {
    6263        def result = build job: 'Cforall/master',               \
    6364                parameters: [                                           \
     
    6869                          name: 'Architecture',                         \
    6970                          value: arch],                                 \
     71                        [$class: 'BooleanParameterValue',               \
     72                          name: 'NewAST',                               \
     73                          value: new_ast],                              \
    7074                        [$class: 'BooleanParameterValue',               \
    7175                          name: 'RunAllTests',                          \
     
    7983                        [$class: 'BooleanParameterValue',               \
    8084                          name: 'Publish',                              \
    81                           value: true],                                 \
     85                          value: true],                                         \
    8286                        [$class: 'BooleanParameterValue',               \
    8387                          name: 'Silent',                               \
  • benchmark/io/http/filecache.cfa

    r3d0560d r833ba13  
    199199                }
    200200                free(raw);
    201                 adelete(file_cache.size, file_cache.entries);
     201                adelete( file_cache.entries );
    202202                exit(0);
    203203        }
  • benchmark/rmit.py

    r3d0560d r833ba13  
    3838                self.vars = re.findall("[a-zA-Z]", value)
    3939
    40 def parse_option(opt):
    41         match = re.search("^(.*):(.*)$", opt)
    42         if not match :
    43                 print('ERROR: extra options should match pattern .*:.*, got {}'.format(opt), file=sys.stderr)
    44                 sys.exit(1)
    45 
    46         key    = match.group(1)
    47         values = match.group(2)
    48 
     40def parse_option(key, values):
    4941        try:
    5042                num = int(values)
     
    121113        parser = argparse.ArgumentParser(description='Python Script to implement R.M.I.T. testing : Randomized Multiple Interleaved Trials')
    122114        parser.add_argument('--list', help='List all the commands that would be run', action='store_true')
    123         parser.add_argument('--format', help='How to print the result', choices=formats, default='json')
    124115        parser.add_argument('--file', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
    125         parser.add_argument('-t', '--trials', help='Number of trials to run per combinaison', type=int, default=3)
    126         parser.add_argument('-o','--option',action='append')
     116        parser.add_argument('--trials', help='Number of trials to run per combinaison', type=int, default=3)
    127117        parser.add_argument('command', metavar='command', type=str, nargs=1, help='the command prefix to run')
    128118        parser.add_argument('candidates', metavar='candidates', type=str, nargs='*', help='the candidate suffix to run')
    129119
    130120        try:
    131                 options =  parser.parse_args()
     121                options, unknown =  parser.parse_known_args()
     122
     123                options.option = []
     124                while unknown:
     125                        key = unknown.pop(0)
     126                        val = unknown.pop(0)
     127
     128                        if key[0] != '-':
     129                                raise ValueError
     130
     131                        options.option.append((key[1:], val))
     132
    132133        except:
    133134                print('ERROR: invalid arguments', file=sys.stderr)
     
    150151        # ================================================================================
    151152        # Identify the options to run
    152         opts = dict([parse_option(o) for o in options.option])
     153        opts = dict([parse_option(k, v) for k, v in options.option])
    153154
    154155        # Evaluate the options (options can depend on the value of other options)
     
    177178        # find expected time
    178179        time = actions_eta(actions)
    179         print("Running {} trials{}".format(len(actions), "" if time == 0 else " (expecting to take {}".format(str(datetime.timedelta(seconds=int(time)))) ))
     180        print("Running {} trials{}".format(len(actions), "" if time == 0 else " (expecting to take {})".format(str(datetime.timedelta(seconds=int(time)))) ))
    180181
    181182        random.shuffle(actions)
    182         result = []
    183183
    184184        # ================================================================================
    185185        # Run
     186        options.file.write("[")
     187        first = True
    186188        for i, a in enumerate(actions):
    187189                sa = " ".join(a)
    188                 print("{}/{} : {}          \r".format(i, len(actions), sa), end = '')
     190                if first:
     191                        first = False
     192                else:
     193                        options.file.write(",")
     194                if options.file != sys.stdout:
     195                        print("{}/{} : {}          \r".format(i, len(actions), sa), end = '')
    189196                fields = {}
    190197                with subprocess.Popen( a, stdout  = subprocess.PIPE, stderr  = subprocess.PIPE) as proc:
     
    199206                                        fields[match.group(1).strip()] = float(match.group(2).strip().replace(',',''))
    200207
    201                 result.append([a[0][2:], sa, fields])
    202 
    203         print("Done                                                                                ")
    204 
    205         # ================================================================================
    206         # Print raw
    207         if options.format == 'raw':
    208                 for r in result:
    209                         print(r, file=options.file)
    210                 sys.exit(0)
    211 
    212         # ================================================================================
    213         # Print json
    214         if options.format == 'json':
    215                 json.dump(result, options.file)
    216                 sys.exit(0)
    217 
    218         # ================================================================================
    219         # Print csv
    220         if options.format == 'csv':
    221                 # Clean result
    222                 headers = ["series", "command"]
    223                 data = []
    224                 first = True
    225                 for r in result:
    226                         if first:
    227                                 first = False
    228                                 headers.extend(r[2].keys())
    229                         else :
    230                                 pass
    231 
    232                         d = [r[0], r[1]]
    233                         for k in headers[2:]:
    234                                 try:
    235                                         d.append(r[2][k])
    236                                 except:
    237                                         d.append(0.0)
    238 
    239                         data.append(d)
    240 
    241                 # Print csv
    242                 print(",\t".join(headers), file=options.file)
    243                 for d in data:
    244                         print(",\t".join(["{}".format(dd) for dd in d]), file=options.file)
    245                 sys.exit(0)
     208                options.file.write(json.dumps([a[0][2:], sa, fields]))
     209                options.file.flush()
     210
     211        options.file.write("]\n")
     212
     213        if options.file != sys.stdout:
     214                print("Done                                                                                ")
  • configure.ac

    r3d0560d r833ba13  
    289289        longrun_tests/Makefile
    290290        benchmark/Makefile
     291        benchmark/io/http/Makefile
    291292        tools/Makefile
    292293        tools/prettyprinter/Makefile
  • libcfa/src/bits/locks.hfa

    r3d0560d r833ba13  
    178178                }
    179179
    180                 void ^?{}(single_sem & this) {}
     180                void ^?{}(single_sem &) {}
    181181
    182182                bool wait(single_sem & this) {
     
    234234                }
    235235
    236                 void ^?{}(oneshot & this) {}
     236                void ^?{}(oneshot &) {}
    237237
    238238                // Wait for the post, return immidiately if it already happened.
     
    281281                }
    282282
    283                 void ^?{}(future_t & this) {}
     283                void ^?{}(future_t &) {}
    284284
    285285                // check if the future is available
  • libcfa/src/concurrency/iofwd.hfa

    r3d0560d r833ba13  
    3838        #define CFA_IO_ASYNC IOSQE_ASYNC
    3939#endif
     40
     41#if __OFF_T_MATCHES_OFF64_T
     42        typedef __off64_t off_t;
     43#else
     44        typedef __off_t off_t;
     45#endif
     46typedef __off64_t off64_t;
    4047
    4148struct cluster;
  • libcfa/src/concurrency/kernel.hfa

    r3d0560d r833ba13  
    159159
    160160static inline void  ?{}(io_cancellation & this) { this.target = -1u; }
    161 static inline void ^?{}(io_cancellation & this) {}
     161static inline void ^?{}(io_cancellation &) {}
    162162bool cancel(io_cancellation & this);
    163163
  • src/Concurrency/Keywords.cc

    r3d0560d r833ba13  
    405405                        dtor_decl = decl;
    406406                else if ( vtable_name.empty() )
     407                        ;
     408                else if( !decl->has_body() )
    407409                        ;
    408410                else if ( auto param = isMainFor( decl, cast_target ) ) {
  • src/InitTweak/FixInitNew.cpp

    r3d0560d r833ba13  
    413413        void SelfAssignChecker::previsit( const ast::ApplicationExpr * appExpr ) {
    414414                auto function = getFunction( appExpr );
    415                 if ( function->name == "?=?" ) { // doesn't use isAssignment, because ?+=?, etc. should not count as self-assignment
    416                         if ( appExpr->args.size() == 2 ) {
    417                                 // check for structural similarity (same variable use, ignore casts, etc. - but does not look too deeply, anything looking like a function is off limits)
    418                                 if ( structurallySimilar( appExpr->args.front(), appExpr->args.back() ) ) {
    419                                         SemanticWarning( appExpr->location, Warning::SelfAssignment, toCString( appExpr->args.front() ) );
    420                                 }
    421                         }
     415                // Doesn't use isAssignment, because ?+=?, etc. should not count as self-assignment.
     416                if ( function->name == "?=?" && appExpr->args.size() == 2
     417                                // Check for structural similarity (same variable use, ignore casts, etc.
     418                                // (but does not look too deeply, anything looking like a function is off limits).
     419                                && structurallySimilar( appExpr->args.front(), appExpr->args.back() ) ) {
     420                        SemanticWarning( appExpr->location, Warning::SelfAssignment, toCString( appExpr->args.front() ) );
    422421                }
    423422        }
  • src/ResolvExpr/Resolver.cc

    r3d0560d r833ba13  
    14711471                                auto newDecl = fixObjectType(objectDecl, symtab);
    14721472                                auto mutDecl = mutate(newDecl);
    1473                                
     1473
    14741474                                // generate CtorInit wrapper when necessary.
    14751475                                // in certain cases, fixObjectType is called before reaching
     
    14891489                        currentObject = ast::CurrentObject{ objectDecl->location, objectDecl->get_type() };
    14901490                }
    1491                
     1491
    14921492                return objectDecl;
    14931493        }
  • src/main.cc

    r3d0560d r833ba13  
    99// Author           : Peter Buhr and Rob Schluntz
    1010// Created On       : Fri May 15 23:12:02 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Oct  8 18:17:46 2020
    13 // Update Count     : 637
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Tue Dec  1 14:52:00 2020
     13// Update Count     : 638
    1414//
    1515
     
    340340                } // if
    341341
    342                 if( useNewAST) {
     342                if( useNewAST ) {
    343343                        if (Stats::Counters::enabled) {
    344344                                ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New");
     
    352352                                return EXIT_SUCCESS;
    353353                        } // if
     354
     355                        // TODO: This is a quick fix to get the build working.
     356                        // Get rid of fillLocations or at least make a new-ast version.
     357                        translationUnit = convert( move( transUnit ) );
     358                        CodeTools::fillLocations( translationUnit );
     359                        transUnit = convert( move( translationUnit ) );
    354360
    355361                        PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary()));
Note: See TracChangeset for help on using the changeset viewer.