Changes in / [b3976bf:cc4218f]
- Files:
-
- 12 deleted
- 36 edited
-
Jenkinsfile (modified) (3 diffs)
-
Makefile.in (modified) (2 diffs)
-
automake/cfa.m4 (modified) (1 diff)
-
benchmark/Makefile.am (modified) (3 diffs)
-
benchmark/Makefile.in (modified) (5 diffs)
-
benchmark/baselines/calc.py (deleted)
-
benchmark/baselines/x64/compile.csv (deleted)
-
benchmark/baselines/x64/ctxswitch.csv (deleted)
-
benchmark/baselines/x64/mutex.csv (deleted)
-
benchmark/baselines/x64/signal.csv (deleted)
-
benchmark/baselines/x86/compile.csv (deleted)
-
benchmark/baselines/x86/ctxswitch.csv (deleted)
-
benchmark/baselines/x86/mutex.csv (deleted)
-
benchmark/baselines/x86/signal.csv (deleted)
-
configure (modified) (7 diffs)
-
configure.ac (modified) (2 diffs)
-
driver/Makefile.in (modified) (2 diffs)
-
driver/cfa.cc (modified) (11 diffs)
-
longrun_tests/Makefile.in (modified) (2 diffs)
-
src/BasicTypes-gen.cc (modified) (7 diffs)
-
src/GenPoly/Box.cc (modified) (1 diff)
-
src/GenPoly/Lvalue.cc (modified) (2 diffs)
-
src/Makefile.am (modified) (4 diffs)
-
src/Makefile.in (modified) (9 diffs)
-
src/Parser/ExpressionNode.cc (modified) (2 diffs)
-
src/Parser/lex.ll (modified) (3 diffs)
-
src/Parser/parser.yy (modified) (3 diffs)
-
src/ResolvExpr/AlternativeFinder.cc (modified) (1 diff)
-
src/ResolvExpr/CommonType.cc (modified) (35 diffs)
-
src/ResolvExpr/ConversionCost.cc (modified) (4 diffs)
-
src/SymTab/Validate.cc (modified) (5 diffs)
-
src/SynTree/AddressExpr.cc (modified) (1 diff)
-
src/SynTree/BasicType.cc (modified) (2 diffs)
-
src/SynTree/Expression.cc (modified) (2 diffs)
-
src/SynTree/Expression.h (modified) (2 diffs)
-
src/SynTree/TopLvalue.cc (deleted)
-
src/SynTree/TopLvalue.h (deleted)
-
src/SynTree/Type.cc (modified) (4 diffs)
-
src/SynTree/module.mk (modified) (1 diff)
-
src/main.cc (modified) (10 diffs)
-
tests/.expect/gccExtensions.x64.txt (modified) (1 diff)
-
tests/.expect/gccExtensions.x86.txt (modified) (1 diff)
-
tests/Makefile.in (modified) (2 diffs)
-
tests/gccExtensions.cfa (modified) (3 diffs)
-
tests/pybin/settings.py (modified) (1 diff)
-
tools/Makefile.in (modified) (2 diffs)
-
tools/baseline.py (deleted)
-
tools/prettyprinter/Makefile.in (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Jenkinsfile
rb3976bf rcc4218f 106 106 107 107 def build() { 108 // build_stage('Build', true) { 109 // // Build outside of the src tree to ease cleaning 110 // dir (BuildDir) { 111 // //Configure the conpilation (Output is not relevant) 112 // //Use the current directory as the installation target so nothing escapes the sandbox 113 // //Also specify the compiler by hand 114 // targets="" 115 // if( Settings.RunAllTests || Settings.RunBenchmark ) { 116 // targets="--with-target-hosts='host:debug,host:nodebug'" 117 // } else { 118 // targets="--with-target-hosts='host:debug'" 119 // } 120 121 // sh "${SrcDir}/configure CXX=${Settings.Compiler.CXX} CC=${Settings.Compiler.CC} ${Settings.Architecture.flags} ${targets} --quiet" 122 123 // //Compile the project 124 // sh 'make -j 8 --no-print-directory' 125 // } 126 // } 127 108 128 debug = true 109 129 release = Settings.RunAllTests || Settings.RunBenchmark … … 175 195 dir (BuildDir) { 176 196 //Append bench results 177 sh "make --no-print-directory -C benchmark jenkins arch=${Settings.Architecture.name}"197 sh "make --no-print-directory -C benchmark jenkins" 178 198 } 179 199 } … … 201 221 202 222 //Then publish the results 203 do_plot(Settings.RunBenchmark && Settings.Publish, 'compile' , groupCompile , 'Compilation') 204 do_plot(Settings.RunBenchmark && Settings.Publish, 'compile.diff' , groupCompile , 'Compilation Speed-Up') 205 do_plot(Settings.RunBenchmark && Settings.Publish, 'ctxswitch' , groupConcurrency, 'Context Switching') 206 do_plot(Settings.RunBenchmark && Settings.Publish, 'ctxswitch.diff', groupConcurrency, 'Context Switching Speed-Up') 207 do_plot(Settings.RunBenchmark && Settings.Publish, 'mutex' , groupConcurrency, 'Mutual Exclusion') 208 do_plot(Settings.RunBenchmark && Settings.Publish, 'mutex.diff' , groupConcurrency, 'Mutual Exclusion Speed-Up') 209 do_plot(Settings.RunBenchmark && Settings.Publish, 'signal' , groupConcurrency, 'Internal and External Scheduling') 210 do_plot(Settings.RunBenchmark && Settings.Publish, 'signal.diff' , groupConcurrency, 'Internal and External Scheduling Speed-Up') 223 do_plot(Settings.RunBenchmark && Settings.Publish, 'compile' , groupCompile , 'Compilation') 224 do_plot(Settings.RunBenchmark && Settings.Publish, 'ctxswitch', groupConcurrency, 'Context Switching') 225 do_plot(Settings.RunBenchmark && Settings.Publish, 'mutex' , groupConcurrency, 'Mutual Exclusion') 226 do_plot(Settings.RunBenchmark && Settings.Publish, 'signal' , groupConcurrency, 'Internal and External Scheduling') 211 227 } 212 228 } -
Makefile.in
rb3976bf rcc4218f 281 281 CYGPATH_W = @CYGPATH_W@ 282 282 DEFS = @DEFS@ 283 DEMANGLER = @DEMANGLER@284 283 DEPDIR = @DEPDIR@ 285 284 DLLTOOL = @DLLTOOL@ … … 307 306 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 308 307 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 309 LIBDEMANGLE = @LIBDEMANGLE@310 308 LIBOBJS = @LIBOBJS@ 311 309 LIBS = @LIBS@ -
automake/cfa.m4
rb3976bf rcc4218f 66 66 "x86-64" ) cannon_arch_name="x64";; 67 67 "x86_64" ) cannon_arch_name="x64";; 68 "aarch64" ) cannon_arch_name=" arm";;68 "aarch64" ) cannon_arch_name="x64";; 69 69 "x86" ) cannon_arch_name="x86";; 70 70 "i386" ) cannon_arch_name="x86";; -
benchmark/Makefile.am
rb3976bf rcc4218f 52 52 # NEED AT LEAST 4 DATA VALUES FOR BENCHMARKS BECAUSE THE MAX AND MIN VALUES ARE REMOVED 53 53 repeats = 5 # 31 for benchmarks 54 arch = x6455 54 skipcompile = no 56 55 TIME_FORMAT = "%E" … … 101 100 @DOifskipcompile@ 102 101 @+make compile.csv 103 @-+make compile.diff.csv104 102 @DOendif@ 105 103 @+make ctxswitch.csv 106 @-+make ctxswitch.diff.csv107 104 @+make mutex.csv 108 @-+make mutex.diff.csv109 105 @+make signal.csv 110 @-+make signal.diff.csv111 106 @DOifskipcompile@ 112 cat compile.csv 113 -cat compile.diff.csv 107 @cat compile.csv 114 108 @DOendif@ 115 cat ctxswitch.csv 116 -cat ctxswitch.diff.csv 117 cat mutex.csv 118 -cat mutex.diff.csv 119 cat signal.csv 120 -cat signal.diff.csv 109 @cat ctxswitch.csv 110 @cat mutex.csv 111 @cat signal.csv 121 112 122 113 compile.csv: … … 152 143 @+make waitfor-cfa2.runquiet >> $@ 153 144 @$(srcdir)/fixcsv.sh $@ 154 155 %.diff.csv: %.csv156 @test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)157 @$(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@158 159 145 160 146 ## ========================================================================================================= -
benchmark/Makefile.in
rb3976bf rcc4218f 231 231 CYGPATH_W = @CYGPATH_W@ 232 232 DEFS = @DEFS@ 233 DEMANGLER = @DEMANGLER@234 233 DEPDIR = @DEPDIR@ 235 234 DLLTOOL = @DLLTOOL@ … … 257 256 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 258 257 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 259 LIBDEMANGLE = @LIBDEMANGLE@260 258 LIBOBJS = @LIBOBJS@ 261 259 LIBS = @LIBS@ … … 400 398 # NEED AT LEAST 4 DATA VALUES FOR BENCHMARKS BECAUSE THE MAX AND MIN VALUES ARE REMOVED 401 399 repeats = 5 # 31 for benchmarks 402 arch = x64403 400 skipcompile = no 404 401 TIME_FORMAT = "%E" … … 765 762 @DOifskipcompile@ 766 763 @+make compile.csv 767 @-+make compile.diff.csv768 764 @DOendif@ 769 765 @+make ctxswitch.csv 770 @-+make ctxswitch.diff.csv771 766 @+make mutex.csv 772 @-+make mutex.diff.csv773 767 @+make signal.csv 774 @-+make signal.diff.csv775 768 @DOifskipcompile@ 776 cat compile.csv 777 -cat compile.diff.csv 769 @cat compile.csv 778 770 @DOendif@ 779 cat ctxswitch.csv 780 -cat ctxswitch.diff.csv 781 cat mutex.csv 782 -cat mutex.diff.csv 783 cat signal.csv 784 -cat signal.diff.csv 771 @cat ctxswitch.csv 772 @cat mutex.csv 773 @cat signal.csv 785 774 786 775 compile.csv: … … 817 806 @$(srcdir)/fixcsv.sh $@ 818 807 819 %.diff.csv: %.csv820 @test -e $(srcdir)/baselines/$(arch)/$< || (echo "Error : Missing baseline for ${<}" && false)821 @$(srcdir)/baselines/calc.py $(srcdir)/baselines/$(arch)/$(<) $(<) > $@822 823 808 loop$(EXEEXT): 824 809 $(BENCH_V_CC)$(COMPILE) -DBENCH_N=5000000000 $(srcdir)/loop.c -
configure
rb3976bf rcc4218f 637 637 LIBOBJS 638 638 CFA_BACKEND_CC 639 DEMANGLER640 LIBDEMANGLE641 639 WITH_LIBTCMALLOC_FALSE 642 640 WITH_LIBTCMALLOC_TRUE … … 799 797 with_target_hosts 800 798 enable_gprofiler 801 enable_demangler802 799 enable_dependency_tracking 803 800 enable_shared … … 1460 1457 --disable-silent-rules verbose build output (undo: "make V=0") 1461 1458 --enable-gprofiler whether or not to enable gprofiler tools (if available) 1462 --enable-demangler whether or not to build the demangler (executable and library)1463 1459 --enable-dependency-tracking 1464 1460 do not reject slow dependency extractors … … 3405 3401 3406 3402 3407 # Check whether --enable-demangler was given.3408 if test "${enable_demangler+set}" = set; then :3409 enableval=$enable_demangler; enable_demangler=$enableval3410 else3411 enable_demangler=yes3412 fi3413 3414 3415 3403 TARGET_HOSTS=${target_hosts} 3416 3404 … … 3445 3433 "x86-64" ) cannon_arch_name="x64";; 3446 3434 "x86_64" ) cannon_arch_name="x64";; 3447 "aarch64" ) cannon_arch_name=" arm";;3435 "aarch64" ) cannon_arch_name="x64";; 3448 3436 "x86" ) cannon_arch_name="x86";; 3449 3437 "i386" ) cannon_arch_name="x86";; … … 3487 3475 "x86-64" ) cannon_arch_name="x64";; 3488 3476 "x86_64" ) cannon_arch_name="x64";; 3489 "aarch64" ) cannon_arch_name=" arm";;3477 "aarch64" ) cannon_arch_name="x64";; 3490 3478 "x86" ) cannon_arch_name="x86";; 3491 3479 "i386" ) cannon_arch_name="x86";; … … 16792 16780 16793 16781 16794 # conditionnally build the demangler16795 if test "x$enable_demangler" == xyes; then16796 LIBDEMANGLE="libdemangle.a"16797 DEMANGLER="demangler"16798 else16799 LIBDEMANGLE=""16800 DEMANGLER=""16801 fi16802 16803 16804 16805 16782 # Checks for header files. 16806 16783 for ac_header in libintl.h malloc.h unistd.h -
configure.ac
rb3976bf rcc4218f 133 133 enable_gprofiler=$enableval, enable_gprofiler=yes) 134 134 135 AC_ARG_ENABLE(demangler,136 [ --enable-demangler whether or not to build the demangler (executable and library)],137 enable_demangler=$enableval, enable_demangler=yes)138 139 135 AC_SUBST(TARGET_HOSTS, ${target_hosts}) 140 136 … … 209 205 AM_CONDITIONAL([WITH_LIBTCMALLOC], [test "x$enable_gprofiler" = "xyes" -a "$HAVE_LIBTCMALLOC" -eq 1]) 210 206 211 # conditionnally build the demangler212 if test "x$enable_demangler" == xyes; then213 LIBDEMANGLE="libdemangle.a"214 DEMANGLER="demangler"215 else216 LIBDEMANGLE=""217 DEMANGLER=""218 fi219 AC_SUBST([LIBDEMANGLE])220 AC_SUBST([DEMANGLER])221 222 207 # Checks for header files. 223 208 AC_CHECK_HEADERS([libintl.h malloc.h unistd.h], [], [echo "Error: Missing required header"; exit 1]) -
driver/Makefile.in
rb3976bf rcc4218f 218 218 CYGPATH_W = @CYGPATH_W@ 219 219 DEFS = @DEFS@ 220 DEMANGLER = @DEMANGLER@221 220 DEPDIR = @DEPDIR@ 222 221 DLLTOOL = @DLLTOOL@ … … 244 243 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 245 244 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 246 LIBDEMANGLE = @LIBDEMANGLE@247 245 LIBOBJS = @LIBOBJS@ 248 246 LIBS = @LIBS@ -
driver/cfa.cc
rb3976bf rcc4218f 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S at Aug 10 08:44:15201913 // Update Count : 31112 // Last Modified On : Sun Feb 10 08:28:09 2019 13 // Update Count : 281 14 14 // 15 15 … … 20 20 #include <string> // STL version 21 21 #include <string.h> // strcmp 22 #include <algorithm> // find23 22 24 23 #include <sys/types.h> … … 27 26 #include "Common/SemanticError.h" 28 27 #include "config.h" // configure info 29 30 28 31 29 using std::cerr; … … 42 40 } // prefix 43 41 44 bool suffix( string arg ) { 45 enum { NumSuffixes = 3 }; 46 static const string suffixes[NumSuffixes] = { "cfa", "hfa", "ifa" }; 42 enum { NumSuffixes = 2 }; 43 const string suffixes[NumSuffixes] = { "cfa", "hfa", }; 44 45 bool suffix( string arg, const char * args[], int & nargs ) { 47 46 //std::cerr << arg << std::endl; 48 47 size_t dot = arg.find_last_of( "." ); 49 48 //std::cerr << dot << " " << (dot != string::npos ? arg.substr( dot + 1 ) : "fred" ) << std::endl; 50 49 if ( dot == string::npos ) return false; 51 const string * end = suffixes + NumSuffixes; 52 return std::find( suffixes, end, arg.substr( dot + 1 ) ) != end; 50 string sx = arg.substr( dot + 1 ); 51 for ( int i = 0; i < NumSuffixes; i += 1 ) { 52 if ( sx == suffixes[i] ) { 53 args[nargs] = "-x"; 54 nargs += 1; 55 args[nargs] = "c"; 56 nargs += 1; 57 return true; 58 } // if 59 } // for 60 return false; 53 61 } // suffix 54 62 55 63 56 void shuffle( const char * args[], int S, int E, int N ) {64 void shuffle( const char *args[], int S, int E, int N ) { 57 65 // S & E index 1 passed the end so adjust with -1 58 66 #ifdef __DEBUG_H__ … … 67 75 } // shuffle 68 76 69 static inline bool dirExists( const string & path) {77 static inline bool dirExists(const string & path) { 70 78 struct stat info; 71 79 if(stat( path.c_str(), &info ) != 0) … … 80 88 #define str(s) #s 81 89 82 int main( int argc, char * argv[] ) {90 int main( int argc, char *argv[] ) { 83 91 string Version( CFA_VERSION_LONG ); // current version number from CONFIG 84 92 string Major( str( CFA_VERSION_MAJOR ) ), Minor( str( CFA_VERSION_MINOR ) ), Patch( str( CFA_VERSION_PATCH ) ); … … 96 104 string compiler_name; // name of C compiler 97 105 98 bool x_flag = false; // -x flag99 106 bool nonoptarg = false; // indicates non-option argument specified 100 107 bool link = true; // linking as well as compiling 101 108 bool verbose = false; // -v flag 102 bool quiet = false; // -quiet flag103 bool debug = true; // -debug flag104 bool nolib = false; // -nolib flag105 bool help = false; // -help flag109 bool quiet = false; // -quiet flag 110 bool debug = true; // -debug flag 111 bool nolib = false; // -nolib flag 112 bool help = false; // -help flag 106 113 bool CFA_flag = false; // -CFA flag 107 114 bool cpp_flag = false; // -E or -M flag, preprocessor only … … 109 116 bool noincstd_flag = false; // -no-include-stdhdr= flag 110 117 bool debugging __attribute(( unused )) = false; // -g flag 111 bool m32 = false; // -m32 flag112 bool m64 = false; // -m64 flag118 bool m32 = false; // -m32 flag 119 bool m64 = false; // -m64 flag 113 120 bool intree = false; 114 121 … … 191 198 args[nargs] = argv[i]; // pass the argument along 192 199 nargs += 1; 193 } else if ( prefix( arg, "-x" ) ) { // file suffix ?194 string lang;195 args[nargs] = argv[i]; // pass the argument along196 nargs += 1;197 if ( arg.length() == 2 ) { // separate argument ?198 i += 1;199 if ( i == argc ) continue; // next argument available ?200 lang = argv[i];201 args[nargs] = argv[i]; // pass the argument along202 nargs += 1;203 } else {204 lang = arg.substr( 2 );205 } // if206 x_flag = lang != "none";207 200 } else if ( prefix( arg, "-std=" ) || prefix( arg, "--std=" ) ) { 208 201 std_flag = true; // -std=XX provided … … 290 283 } // if 291 284 } else { 292 bool cfa = suffix( arg ); // check suffix 293 if ( ! x_flag && cfa ) { // no explicit suffix and cfa suffix ? 294 args[nargs] = "-x"; 295 nargs += 1; 296 args[nargs] = "c"; 297 nargs += 1; 298 } // if 285 bool cfa = suffix( arg, args, nargs ); // check suffix 299 286 args[nargs] = argv[i]; // concatenate file 300 287 nargs += 1; 301 if ( ! x_flag && cfa ) { // no explicit suffix and cfa suffix ?288 if ( cfa ) { 302 289 args[nargs] = "-x"; 303 290 nargs += 1; … … 308 295 } // if 309 296 } // for 297 298 args[nargs] = "-x"; // turn off language 299 nargs += 1; 300 args[nargs] = "none"; 301 nargs += 1; 310 302 311 303 #ifdef __x86_64__ -
longrun_tests/Makefile.in
rb3976bf rcc4218f 365 365 CYGPATH_W = @CYGPATH_W@ 366 366 DEFS = @DEFS@ 367 DEMANGLER = @DEMANGLER@368 367 DEPDIR = @DEPDIR@ 369 368 DLLTOOL = @DLLTOOL@ … … 391 390 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 392 391 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 393 LIBDEMANGLE = @LIBDEMANGLE@394 392 LIBOBJS = @LIBOBJS@ 395 393 LIBS = @LIBS@ -
src/BasicTypes-gen.cc
rb3976bf rcc4218f 295 295 // cout << code.str(); 296 296 297 298 // TEMPORARY DURING CHANGE OVER 299 #define TypeAST TOP_SRCDIR "src/AST/Type.hpp" 300 resetInput( file, TypeAST, buffer, code, str ); 301 302 if ( (start = str.find( STARTMK )) == string::npos ) Abort( "start", TypeAST ); 303 start += sizeof( STARTMK ); // includes newline 304 code << str.substr( 0, start ); 305 306 code << "\t" << BYMK << endl; 307 code << "\tenum Kind {" << endl; 308 for ( int r = 0; r < NUMBER_OF_BASIC_TYPES; r += 1 ) { 309 code << "\t\t" << graph[r].name << "," << endl; 310 } // for 311 code << "\t\tNUMBER_OF_BASIC_TYPES" << endl; 312 code << "\t} kind;" << endl; 313 code << "\t"; // indentation for end marker 314 315 if ( (start = str.find( ENDMK, start + 1 )) == string::npos ) Abort( "end", TypeAST ); 316 code << str.substr( start ); 317 318 output( file, TypeAST, code ); 319 // cout << code.str(); 320 321 297 322 298 #define ConversionCost TOP_SRCDIR "src/ResolvExpr/ConversionCost.cc" 323 299 resetInput( file, ConversionCost, buffer, code, str ); … … 334 310 code << right << setw(30) << graph[c].type << left; 335 311 } else if ( graph[c].rank != graph[c + 2].rank ) { 336 code << string( 10, ' ' ) << setw(25) << graph[c].type << graph[c + 1].type;312 code << string( 10, ' ' ) << setw(25) << graph[c].type << setw(25) << graph[c + 1].type; 337 313 c += 1; 338 314 } else { 339 code << setw(20) << graph[c].type << setw(20) << graph[c + 1].type << graph[c + 2].type;315 code << setw(20) << graph[c].type << setw(20) << graph[c + 1].type << setw(20) << graph[c + 2].type; 340 316 c += 2; 341 317 } // if … … 352 328 code << "\t" << BYMK << endl; 353 329 code << "\tstatic const int costMatrix[BasicType::NUMBER_OF_BASIC_TYPES][BasicType::NUMBER_OF_BASIC_TYPES] = { // path length from root to node" << endl 354 << "\t\t/* ";330 << "\t\t/* "; 355 331 for ( int r = 0; r < NUMBER_OF_BASIC_TYPES; r += 1 ) { // titles 356 332 code << setw(5) << graph[r].abbrev; … … 358 334 code << " */" << endl; 359 335 for ( int r = 0; r < NUMBER_OF_BASIC_TYPES; r += 1 ) { // costs 360 code << "\t\t/* " << setw(6) << graph[r].abbrev << "*/ {";336 code << "\t\t/*" << setw(6) << graph[r].abbrev << "*/ {"; 361 337 for ( int c = 0; c < NUMBER_OF_BASIC_TYPES; c += 1 ) { 362 338 code << setw(4) << costMatrix[r][c] << ","; … … 377 353 code << "\t" << BYMK << endl; 378 354 code << "\tstatic const int signMatrix[BasicType::NUMBER_OF_BASIC_TYPES][BasicType::NUMBER_OF_BASIC_TYPES] = { // number of sign changes in safe conversion" << endl 379 << "\t\t/* ";355 << "\t\t/* "; 380 356 for ( int r = 0; r < NUMBER_OF_BASIC_TYPES; r += 1 ) { // titles 381 357 code << setw(5) << graph[r].abbrev; … … 383 359 code << " */" << endl; 384 360 for ( int r = 0; r < NUMBER_OF_BASIC_TYPES; r += 1 ) { // costs 385 code << "\t\t/* " << setw(6) << graph[r].abbrev << "*/ {";361 code << "\t\t/*" << setw(6) << graph[r].abbrev << "*/ {"; 386 362 for ( int c = 0; c < NUMBER_OF_BASIC_TYPES; c += 1 ) { 387 363 code << setw(4) << signMatrix[r][c] << ","; … … 419 395 code << "*/" << endl; 420 396 for ( int r = 0; r < NUMBER_OF_BASIC_TYPES; r += 1 ) { // costs 421 code << "\t\t\t\t {\n\t\t/* " << setw(6) << graph[r].abbrev << "*/";397 code << "\t\t\t\t {\n\t\t/*" << setw(6) << graph[r].abbrev << "*/"; 422 398 for ( int c = 0; c < NUMBER_OF_BASIC_TYPES; c += 1 ) { 423 399 string s = string{"BT "} + graph[commonTypeMatrix[r][c]].name; -
src/GenPoly/Box.cc
rb3976bf rcc4218f 725 725 if ( ! needsBoxing( param, arg->result, exprTyVars, env ) ) return; 726 726 727 if ( arg-> get_lvalue() ) {727 if ( arg->result->get_lvalue() ) { 728 728 // argument expression may be CFA lvalue, but not C lvalue -- apply generalizedLvalue transformations. 729 729 // if ( VariableExpr * varExpr = dynamic_cast< VariableExpr * >( arg ) ) { -
src/GenPoly/Lvalue.cc
rb3976bf rcc4218f 363 363 int diff = depth1 - depth2; 364 364 365 if ( diff > 0 && ! castExpr->arg->get_lvalue() ) {365 if ( diff > 0 && ! srcType->get_lvalue() ) { 366 366 // rvalue to reference conversion -- introduce temporary 367 367 // know that reference depth of cast argument is 0, need to introduce n temporaries for reference depth of n, e.g. … … 407 407 ret = new AddressExpr( ret ); 408 408 } 409 if ( castExpr->arg->get_lvalue() && ! ResolvExpr::typesCompatible( srcType, strict_dynamic_cast<ReferenceType *>( destType )->base, SymTab::Indexer() ) ) {409 if ( srcType->get_lvalue() && ! ResolvExpr::typesCompatible( srcType, strict_dynamic_cast<ReferenceType *>( destType )->base, SymTab::Indexer() ) ) { 410 410 // must keep cast if cast-to type is different from the actual type 411 411 castExpr->arg = ret; -
src/Makefile.am
rb3976bf rcc4218f 11 11 ## Created On : Sun May 31 08:51:46 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Mon Aug 5 12:57:46201914 ## Update Count : 9 813 ## Last Modified On : Fri Feb 15 09:44:09 2019 14 ## Update Count : 97 15 15 ############################################################################### 16 16 … … 55 55 $(addprefix $(srcdir)/, ResolvExpr/ConversionCost.cc ResolvExpr/CommonType.cc SymTab/ManglerCommon.cc) : $(srcdir)/SynTree/Type.h 56 56 57 $(srcdir)/ AST/Type.hpp: BasicTypes-gen.cc57 $(srcdir)/SynTree/Type.h : BasicTypes-gen.cc 58 58 ${AM_V_GEN}${CXXCOMPILE} $< -o BasicTypes-gen -Wall -Wextra 59 59 @./BasicTypes-gen … … 62 62 # put into lib for now 63 63 cfa_cpplibdir = $(CFA_LIBDIR) 64 cfa_cpplib_PROGRAMS = ../driver/cfa-cpp $(DEMANGLER) 65 EXTRA_PROGRAMS = demangler 64 cfa_cpplib_PROGRAMS = ../driver/cfa-cpp demangler 66 65 ___driver_cfa_cpp_SOURCES = $(SRC) 67 66 ___driver_cfa_cpp_LDADD = -ldl $(LIBPROFILER) $(LIBTCMALLOC) … … 75 74 demangler_LDADD = libdemangle.a -ldl # yywrap 76 75 77 noinst_LIBRARIES = $(LIBDEMANGLE) 78 EXTRA_LIBRARIES = libdemangle.a 76 noinst_LIBRARIES = libdemangle.a 79 77 libdemangle_a_SOURCES = $(SRCDEMANGLE) 80 78 -
src/Makefile.in
rb3976bf rcc4218f 141 141 build_triplet = @build@ 142 142 host_triplet = @host@ 143 cfa_cpplib_PROGRAMS = ../driver/cfa-cpp$(EXEEXT) $(DEMANGLER) 144 EXTRA_PROGRAMS = demangler$(EXEEXT) 143 cfa_cpplib_PROGRAMS = ../driver/cfa-cpp$(EXEEXT) demangler$(EXEEXT) 145 144 subdir = src 146 145 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 … … 231 230 SynTree/Initializer.$(OBJEXT) \ 232 231 SynTree/TypeSubstitution.$(OBJEXT) SynTree/Attribute.$(OBJEXT) \ 233 SynTree/DeclReplacer.$(OBJEXT) SynTree/TopLvalue.$(OBJEXT)232 SynTree/DeclReplacer.$(OBJEXT) 234 233 am__objects_8 = CompilationState.$(OBJEXT) $(am__objects_1) \ 235 234 $(am__objects_2) Concurrency/Keywords.$(OBJEXT) \ … … 428 427 CYGPATH_W = @CYGPATH_W@ 429 428 DEFS = @DEFS@ 430 DEMANGLER = @DEMANGLER@431 429 DEPDIR = @DEPDIR@ 432 430 DLLTOOL = @DLLTOOL@ … … 454 452 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 455 453 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 456 LIBDEMANGLE = @LIBDEMANGLE@457 454 LIBOBJS = @LIBOBJS@ 458 455 LIBS = @LIBS@ … … 694 691 SynTree/TypeSubstitution.cc \ 695 692 SynTree/Attribute.cc \ 696 SynTree/DeclReplacer.cc \ 697 SynTree/TopLvalue.cc 693 SynTree/DeclReplacer.cc 698 694 699 695 … … 707 703 demangler_SOURCES = SymTab/demangler.cc # test driver for the demangler, also useful as a sanity check that libdemangle.a is complete 708 704 demangler_LDADD = libdemangle.a -ldl # yywrap 709 noinst_LIBRARIES = $(LIBDEMANGLE) 710 EXTRA_LIBRARIES = libdemangle.a 705 noinst_LIBRARIES = libdemangle.a 711 706 libdemangle_a_SOURCES = $(SRCDEMANGLE) 712 707 all: $(BUILT_SOURCES) … … 1024 1019 SynTree/DeclReplacer.$(OBJEXT): SynTree/$(am__dirstamp) \ 1025 1020 SynTree/$(DEPDIR)/$(am__dirstamp) 1026 SynTree/TopLvalue.$(OBJEXT): SynTree/$(am__dirstamp) \1027 SynTree/$(DEPDIR)/$(am__dirstamp)1028 1021 Tuples/$(am__dirstamp): 1029 1022 @$(MKDIR_P) Tuples … … 1336 1329 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/ReferenceType.Po@am__quote@ 1337 1330 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/Statement.Po@am__quote@ 1338 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/TopLvalue.Po@am__quote@1339 1331 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/TupleExpr.Po@am__quote@ 1340 1332 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/TupleType.Po@am__quote@ … … 1670 1662 $(addprefix $(srcdir)/, ResolvExpr/ConversionCost.cc ResolvExpr/CommonType.cc SymTab/ManglerCommon.cc) : $(srcdir)/SynTree/Type.h 1671 1663 1672 $(srcdir)/ AST/Type.hpp: BasicTypes-gen.cc1664 $(srcdir)/SynTree/Type.h : BasicTypes-gen.cc 1673 1665 ${AM_V_GEN}${CXXCOMPILE} $< -o BasicTypes-gen -Wall -Wextra 1674 1666 @./BasicTypes-gen -
src/Parser/ExpressionNode.cc
rb3976bf rcc4218f 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 4 20:57:55201913 // Update Count : 97 812 // Last Modified On : Sun Mar 10 16:10:32 2019 13 // Update Count : 976 14 14 // 15 15 … … 109 109 110 110 Expression * build_constantInteger( string & str ) { 111 static const BasicType::Kind kind[2][ 6] = {111 static const BasicType::Kind kind[2][7] = { 112 112 // short (h) must be before char (hh) because shorter type has the longer suffix 113 113 { BasicType::ShortSignedInt, BasicType::SignedChar, BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt, BasicType::SignedInt128, }, -
src/Parser/lex.ll
rb3976bf rcc4218f 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Sun Aug 4 20:53:47201913 * Update Count : 71 912 * Last Modified On : Thu Jul 25 22:08:32 2019 13 * Update Count : 716 14 14 */ 15 15 … … 273 273 __inline__ { KEYWORD_RETURN(INLINE); } // GCC 274 274 int { KEYWORD_RETURN(INT); } 275 int128 { KEYWORD_RETURN(INT128); } // CFA276 275 __int128 { KEYWORD_RETURN(INT128); } // GCC 277 __int128_t{ KEYWORD_RETURN(INT128); } // GCC276 int128 { KEYWORD_RETURN(INT128); } // GCC 278 277 __label__ { KEYWORD_RETURN(LABEL); } // GCC 279 278 long { KEYWORD_RETURN(LONG); } … … 314 313 __typeof__ { KEYWORD_RETURN(TYPEOF); } // GCC 315 314 union { KEYWORD_RETURN(UNION); } 316 __uint128_t { KEYWORD_RETURN(UINT128); } // GCC317 315 unsigned { KEYWORD_RETURN(UNSIGNED); } 318 316 __builtin_va_list { KEYWORD_RETURN(VALIST); } // GCC -
src/Parser/parser.yy
rb3976bf rcc4218f 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 4 21:48:23201913 // Update Count : 43 6412 // Last Modified On : Thu Jul 25 22:31:38 2019 13 // Update Count : 4359 14 14 // 15 15 … … 268 268 %token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED 269 269 %token BOOL COMPLEX IMAGINARY // C99 270 %token INT128 UINT128 uuFLOAT80 uuFLOAT128// GCC270 %token INT128 uuFLOAT80 uuFLOAT128 // GCC 271 271 %token uFLOAT16 uFLOAT32 uFLOAT32X uFLOAT64 uFLOAT64X uFLOAT128 // GCC 272 272 %token ZERO_T ONE_T // CFA … … 1826 1826 | INT128 1827 1827 { $$ = DeclarationNode::newBasicType( DeclarationNode::Int128 ); } 1828 | UINT1281829 { $$ = DeclarationNode::newBasicType( DeclarationNode::Int128 )->addType( DeclarationNode::newSignedNess( DeclarationNode::Unsigned ) ); }1830 1828 | FLOAT 1831 1829 { $$ = DeclarationNode::newBasicType( DeclarationNode::Float ); } -
src/ResolvExpr/AlternativeFinder.cc
rb3976bf rcc4218f 1135 1135 bool isLvalue( Expression *expr ) { 1136 1136 // xxx - recurse into tuples? 1137 return expr->result && ( expr-> get_lvalue() || dynamic_cast< ReferenceType * >( expr->result ) );1137 return expr->result && ( expr->result->get_lvalue() || dynamic_cast< ReferenceType * >( expr->result ) ); 1138 1138 } 1139 1139 -
src/ResolvExpr/CommonType.cc
rb3976bf rcc4218f 190 190 */ 191 191 { 192 /* B */ BT Bool, BT Char, BT SignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt,192 /* B */ BT Bool, BT Char, BT SignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt, 193 193 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 194 194 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 198 198 }, 199 199 { 200 /* C */ BT Char, BT Char, BT SignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt,200 /* C */ BT Char, BT Char, BT SignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt, 201 201 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 202 202 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 206 206 }, 207 207 { 208 /* SC */ BT SignedChar, BT SignedChar, BT SignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt,208 /* SC */ BT SignedChar, BT SignedChar, BT SignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt, 209 209 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 210 210 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 214 214 }, 215 215 { 216 /* UC */ BT UnsignedChar, BT UnsignedChar, BT UnsignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt,216 /* UC */ BT UnsignedChar, BT UnsignedChar, BT UnsignedChar, BT UnsignedChar, BT ShortSignedInt, BT ShortUnsignedInt, 217 217 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 218 218 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 222 222 }, 223 223 { 224 /* SI */ BT ShortSignedInt, BT ShortSignedInt, BT ShortSignedInt, BT ShortSignedInt, BT ShortSignedInt, BT ShortUnsignedInt,224 /* SI */ BT ShortSignedInt, BT ShortSignedInt, BT ShortSignedInt, BT ShortSignedInt, BT ShortSignedInt, BT ShortUnsignedInt, 225 225 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 226 226 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 230 230 }, 231 231 { 232 /* SUI */ BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt,232 /* SUI */ BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, BT ShortUnsignedInt, 233 233 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 234 234 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 238 238 }, 239 239 { 240 /* I */ BT SignedInt, BT SignedInt, BT SignedInt, BT SignedInt, BT SignedInt, BT SignedInt,240 /* I */ BT SignedInt, BT SignedInt, BT SignedInt, BT SignedInt, BT SignedInt, BT SignedInt, 241 241 BT SignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 242 242 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 246 246 }, 247 247 { 248 /* UI */ BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, BT UnsignedInt,248 /* UI */ BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, BT UnsignedInt, 249 249 BT UnsignedInt, BT UnsignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 250 250 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 254 254 }, 255 255 { 256 /* LI */ BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongSignedInt,256 /* LI */ BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, 257 257 BT LongSignedInt, BT LongSignedInt, BT LongSignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 258 258 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 262 262 }, 263 263 { 264 /* LUI */ BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt,264 /* LUI */ BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, 265 265 BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongUnsignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 266 266 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 270 270 }, 271 271 { 272 /* LLI */ BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt,272 /* LLI */ BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, 273 273 BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongSignedInt, BT LongLongUnsignedInt, 274 274 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 278 278 }, 279 279 { 280 /* LLUI */ BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt,280 /* LLUI */ BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, 281 281 BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, BT LongLongUnsignedInt, 282 282 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 286 286 }, 287 287 { 288 /* IB */ BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128,288 /* IB */ BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, 289 289 BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, BT SignedInt128, 290 290 BT SignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 294 294 }, 295 295 { 296 /* UIB */ BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128,296 /* UIB */ BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, 297 297 BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, BT UnsignedInt128, 298 298 BT UnsignedInt128, BT UnsignedInt128, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 302 302 }, 303 303 { 304 /* _FH */ BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16,304 /* _FH */ BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, 305 305 BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16, 306 306 BT uFloat16, BT uFloat16, BT uFloat16, BT uFloat16Complex, BT uFloat32, BT uFloat32Complex, … … 310 310 }, 311 311 { 312 /* _FH */ BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex,312 /* _FH */ BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, 313 313 BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, 314 314 BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat16Complex, BT uFloat32Complex, BT uFloat32Complex, … … 318 318 }, 319 319 { 320 /* _F */ BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32,320 /* _F */ BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, 321 321 BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32, 322 322 BT uFloat32, BT uFloat32, BT uFloat32, BT uFloat32Complex, BT uFloat32, BT uFloat32Complex, … … 326 326 }, 327 327 { 328 /* _FC */ BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex,328 /* _FC */ BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, 329 329 BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, 330 330 BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, BT uFloat32Complex, … … 334 334 }, 335 335 { 336 /* F */ BT Float, BT Float, BT Float, BT Float, BT Float, BT Float,336 /* F */ BT Float, BT Float, BT Float, BT Float, BT Float, BT Float, 337 337 BT Float, BT Float, BT Float, BT Float, BT Float, BT Float, 338 338 BT Float, BT Float, BT Float, BT FloatComplex, BT Float, BT FloatComplex, … … 342 342 }, 343 343 { 344 /* FC */ BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex,344 /* FC */ BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, 345 345 BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, 346 346 BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, BT FloatComplex, … … 350 350 }, 351 351 { 352 /* _FX */ BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x,352 /* _FX */ BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, 353 353 BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32x, 354 354 BT uFloat32x, BT uFloat32x, BT uFloat32x, BT uFloat32xComplex, BT uFloat32x, BT uFloat32xComplex, … … 358 358 }, 359 359 { 360 /* _FXC */ BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex,360 /* _FXC */ BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, 361 361 BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, 362 362 BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, BT uFloat32xComplex, … … 366 366 }, 367 367 { 368 /* FD */ BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64,368 /* FD */ BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, 369 369 BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64, 370 370 BT uFloat64, BT uFloat64, BT uFloat64, BT uFloat64Complex, BT uFloat64, BT uFloat64Complex, … … 374 374 }, 375 375 { 376 /* _FDC */ BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex,376 /* _FDC */ BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, 377 377 BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, 378 378 BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, BT uFloat64Complex, … … 382 382 }, 383 383 { 384 /* D */ BT Double, BT Double, BT Double, BT Double, BT Double, BT Double,384 /* D */ BT Double, BT Double, BT Double, BT Double, BT Double, BT Double, 385 385 BT Double, BT Double, BT Double, BT Double, BT Double, BT Double, 386 386 BT Double, BT Double, BT Double, BT DoubleComplex, BT Double, BT DoubleComplex, … … 390 390 }, 391 391 { 392 /* DC */ BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex,392 /* DC */ BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, 393 393 BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, 394 394 BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, BT DoubleComplex, … … 398 398 }, 399 399 { 400 /* F80X */ BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x,400 /* F80X */ BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, 401 401 BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64x, 402 402 BT uFloat64x, BT uFloat64x, BT uFloat64x, BT uFloat64xComplex, BT uFloat64x, BT uFloat64xComplex, … … 406 406 }, 407 407 { 408 /* _FDXC */ BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex,408 /* _FDXC */ BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, 409 409 BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, 410 410 BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, BT uFloat64xComplex, … … 414 414 }, 415 415 { 416 /* F80*/ BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80,416 /* F80*/ BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, 417 417 BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uuFloat80, 418 418 BT uuFloat80, BT uuFloat80, BT uuFloat80, BT uFloat64xComplex, BT uuFloat80, BT uFloat64xComplex, … … 422 422 }, 423 423 { 424 /* _FB */ BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128,424 /* _FB */ BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, 425 425 BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128, 426 426 BT uFloat128, BT uFloat128, BT uFloat128, BT uFloat128Complex, BT uFloat128, BT uFloat128Complex, … … 430 430 }, 431 431 { 432 /* _FLDC */ BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex,432 /* _FLDC */ BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, 433 433 BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, 434 434 BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, BT uFloat128Complex, … … 438 438 }, 439 439 { 440 /* FB */ BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128,440 /* FB */ BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, 441 441 BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uuFloat128, 442 442 BT uuFloat128, BT uuFloat128, BT uuFloat128, BT uFloat128Complex, BT uuFloat128, BT uFloat128Complex, … … 446 446 }, 447 447 { 448 /* LD */ BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble,448 /* LD */ BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, 449 449 BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, BT LongDouble, 450 450 BT LongDouble, BT LongDouble, BT LongDouble, BT LongDoubleComplex, BT LongDouble, BT LongDoubleComplex, … … 454 454 }, 455 455 { 456 /* LDC */ BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex,456 /* LDC */ BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, 457 457 BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, 458 458 BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, BT LongDoubleComplex, … … 462 462 }, 463 463 { 464 /* _FBX */ BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x,464 /* _FBX */ BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, 465 465 BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128x, 466 466 BT uFloat128x, BT uFloat128x, BT uFloat128x, BT uFloat128xComplex, BT uFloat128x, BT uFloat128xComplex, -
src/ResolvExpr/ConversionCost.cc
rb3976bf rcc4218f 98 98 } 99 99 100 staticCost convertToReferenceCost( const Type * src, const Type * dest, int diff, const SymTab::Indexer & indexer, const TypeEnvironment & env, PtrsFunction func ) {100 Cost convertToReferenceCost( const Type * src, const Type * dest, int diff, const SymTab::Indexer & indexer, const TypeEnvironment & env, PtrsFunction func ) { 101 101 PRINT( std::cerr << "convert to reference cost... diff " << diff << " " << src << " / " << dest << std::endl; ) 102 102 if ( diff > 0 ) { … … 217 217 // GENERATED BY BasicTypes-gen.cc 218 218 static const int costMatrix[BasicType::NUMBER_OF_BASIC_TYPES][BasicType::NUMBER_OF_BASIC_TYPES] = { // path length from root to node 219 /* B C SC UC SI SUI I UI LI LUI LLI LLUI IB UIB _FH _FH _F _FC F FC _FX _FXC FD _FDC D DC F80X_FDXC F80 _FB_FLDC FB LD LDC _FBX_FLDXC */220 /* B */ { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 17, 16, 18, 17, },221 /* C */ { -1, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 15, 17, 16, },222 /* SC */ { -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 15, 17, 16, },223 /* UC */ { -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 15, 17, 16, },224 /* SI */ { -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 14, 16, 15, },225 /* SUI */ { -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 14, 16, 15, },226 /* I */ { -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 13, 15, 14, },227 /* UI */ { -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 13, 15, 14, },228 /* LI */ { -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 12, 14, 13, },229 /* LUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 12, 14, 13, },230 /* LLI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 11, 13, 12, },231 /* LLUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 11, 13, 12, },232 /* IB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 10, 12, 11, },233 /* UIB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 10, 12, 11, },234 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 9, 11, 10, },235 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, 6, -1, -1, 7, -1, -1, 8, -1, 9, },236 /* _F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 8, 10, 9, },237 /* _FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, -1, 6, -1, -1, 7, -1, 8, },238 /* F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 7, 9, 8, },239 /* FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, -1, 5, -1, -1, 6, -1, 7, },240 /* _FX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 6, 8, 7, },241 /* _FXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, -1, 4, -1, -1, 5, -1, 6, },242 /* FD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 5, 7, 6, },243 /* _FDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, -1, 3, -1, -1, 4, -1, 5, },244 /* D */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 5, 4, 6, 5, },245 /* DC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, -1, 2, -1, -1, 3, -1, 4, },246 /* F80X */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 4, 3, 5, 4, },247 /* _FDXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, -1, 2, -1, 3, },248 /* F80*/ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 0, 1, 2, 2, 3, 3, 4, 4, },249 /* _FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, },250 /* _FLDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, 2, },251 /* FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 0, 1, 2, 2, 3, },252 /* LD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, },253 /* LDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, },254 /* _FBX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, },219 /* B C SC UC SI SUI I UI LI LUI LLI LLUI IB UIB _FH _FH _F _FC F FC _FX _FXC FD _FDC D DC F80X_FDXC F80 _FB_FLDC FB LD LDC _FBX_FLDXC */ 220 /* B */ { 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 17, 16, 18, 17, }, 221 /* C */ { -1, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 15, 17, 16, }, 222 /* SC */ { -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 15, 17, 16, }, 223 /* UC */ { -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 16, 15, 17, 16, }, 224 /* SI */ { -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 14, 16, 15, }, 225 /* SUI */ { -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 14, 16, 15, }, 226 /* I */ { -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 13, 15, 14, }, 227 /* UI */ { -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 14, 13, 15, 14, }, 228 /* LI */ { -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 12, 14, 13, }, 229 /* LUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 13, 12, 14, 13, }, 230 /* LLI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 11, 13, 12, }, 231 /* LLUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 11, 13, 12, }, 232 /* IB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 10, 12, 11, }, 233 /* UIB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 10, 12, 11, }, 234 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 10, 9, 11, 10, }, 235 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, 6, -1, -1, 7, -1, -1, 8, -1, 9, }, 236 /* _F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 8, 10, 9, }, 237 /* _FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, 5, -1, -1, 6, -1, -1, 7, -1, 8, }, 238 /* F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 7, 9, 8, }, 239 /* FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, 4, -1, -1, 5, -1, -1, 6, -1, 7, }, 240 /* _FX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 6, 8, 7, }, 241 /* _FXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, 3, -1, -1, 4, -1, -1, 5, -1, 6, }, 242 /* FD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 5, 7, 6, }, 243 /* _FDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 2, -1, -1, 3, -1, -1, 4, -1, 5, }, 244 /* D */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, 4, 5, 4, 6, 5, }, 245 /* DC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, -1, 2, -1, -1, 3, -1, 4, }, 246 /* F80X */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 4, 3, 5, 4, }, 247 /* _FDXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, -1, 2, -1, 3, }, 248 /* F80*/ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 0, 1, 2, 2, 3, 3, 4, 4, }, 249 /* _FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, 2, 3, 3, }, 250 /* _FLDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, 2, }, 251 /* FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 0, 1, 2, 2, 3, }, 252 /* LD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 2, }, 253 /* LDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, }, 254 /* _FBX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, }, 255 255 /* _FLDXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, }, 256 256 }; // costMatrix … … 265 265 // GENERATED BY BasicTypes-gen.cc 266 266 static const int signMatrix[BasicType::NUMBER_OF_BASIC_TYPES][BasicType::NUMBER_OF_BASIC_TYPES] = { // number of sign changes in safe conversion 267 /* B C SC UC SI SUI I UI LI LUI LLI LLUI IB UIB _FH _FH _F _FC F FC _FX _FXC FD _FDC D DC F80X_FDXC F80 _FB_FLDC FB LD LDC _FBX_FLDXC */268 /* B */ { 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },269 /* C */ { -1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },270 /* SC */ { -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },271 /* UC */ { -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },272 /* SI */ { -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },273 /* SUI */ { -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },274 /* I */ { -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },275 /* UI */ { -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },276 /* LI */ { -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },277 /* LUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },278 /* LLI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },279 /* LLUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },280 /* IB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },281 /* UIB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },282 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },283 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },284 /* _F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },285 /* _FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },286 /* F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },287 /* FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },288 /* _FX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },289 /* _FXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },290 /* FD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },291 /* _FDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },292 /* D */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },293 /* DC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },294 /* F80X */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },295 /* _FDXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, },296 /* F80*/ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, },297 /* _FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, },298 /* _FLDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 0, -1, 0, },299 /* FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, },300 /* LD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, },301 /* LDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, },302 /* _FBX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, },267 /* B C SC UC SI SUI I UI LI LUI LLI LLUI IB UIB _FH _FH _F _FC F FC _FX _FXC FD _FDC D DC F80X_FDXC F80 _FB_FLDC FB LD LDC _FBX_FLDXC */ 268 /* B */ { 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 269 /* C */ { -1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 270 /* SC */ { -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 271 /* UC */ { -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 272 /* SI */ { -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 273 /* SUI */ { -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 274 /* I */ { -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 275 /* UI */ { -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 276 /* LI */ { -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 277 /* LUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 278 /* LLI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 279 /* LLUI */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 280 /* IB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 281 /* UIB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 282 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 283 /* _FH */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 284 /* _F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 285 /* _FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 286 /* F */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 287 /* FC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 288 /* _FX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 289 /* _FXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 290 /* FD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 291 /* _FDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 292 /* D */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 293 /* DC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 294 /* F80X */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 295 /* _FDXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, }, 296 /* F80*/ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, 297 /* _FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, }, 298 /* _FLDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 0, -1, 0, }, 299 /* FB */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, }, 300 /* LD */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, }, 301 /* LDC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 0, }, 302 /* _FBX */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, }, 303 303 /* _FLDXC */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, }, 304 304 }; // signMatrix … … 534 534 } 535 535 536 static Cost convertToReferenceCost( const ast::Type * src, const ast::Type * dst,537 int diff,const ast::SymbolTable & symtab, const ast::TypeEnvironment & env,536 Cost convertToReferenceCost( const ast::Type * src, const ast::Type * dst, int diff, 537 const ast::SymbolTable & symtab, const ast::TypeEnvironment & env, 538 538 NumCostCalculation func ) { 539 539 if ( 0 < diff ) { -
src/SymTab/Validate.cc
rb3976bf rcc4218f 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:50:04 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed Aug 7 6:42:00 201913 // Update Count : 3 6011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 28 13:47:23 2017 13 // Update Count : 359 14 14 // 15 15 … … 81 81 #include "SynTree/Label.h" // for operator==, Label 82 82 #include "SynTree/Mutator.h" // for Mutator 83 #include "SynTree/TopLvalue.h" // for assertTopLvalue, clearInnerLvalue84 83 #include "SynTree/Type.h" // for Type, TypeInstType, EnumInstType 85 84 #include "SynTree/TypeSubstitution.h" // for TypeSubstitution … … 309 308 PassVisitor<FixQualifiedTypes> fixQual; 310 309 311 assertTopLvalue( translationUnit );312 310 { 313 311 Stats::Heap::newPass("validate-A"); … … 318 316 acceptAll( translationUnit, epc ); // must happen before VerifyCtorDtorAssign, because void return objects should not exist; before LinkReferenceToTypes_old because it is an indexer and needs correct types for mangling 319 317 } 320 assertTopLvalue( translationUnit );321 318 { 322 319 Stats::Heap::newPass("validate-B"); 323 320 Stats::Time::BlockGuard guard("validate-B"); 324 assertTopLvalue( translationUnit );325 321 Stats::Time::TimeBlock("Link Reference To Types", [&]() { 326 322 acceptAll( translationUnit, lrt ); // must happen before autogen, because sized flag needs to propagate to generated functions 327 323 }); 328 clearInnerLvalue( translationUnit );329 assertTopLvalue( translationUnit );330 324 Stats::Time::TimeBlock("Fix Qualified Types", [&]() { 331 325 mutateAll( translationUnit, fixQual ); // must happen after LinkReferenceToTypes_old, because aggregate members are accessed 332 326 }); 333 assertTopLvalue( translationUnit );334 327 Stats::Time::TimeBlock("Hoist Structs", [&]() { 335 328 HoistStruct::hoistStruct( translationUnit ); // must happen after EliminateTypedef, so that aggregate typedefs occur in the correct order 336 329 }); 337 assertTopLvalue( translationUnit );338 330 Stats::Time::TimeBlock("Eliminate Typedefs", [&]() { 339 331 EliminateTypedef::eliminateTypedef( translationUnit ); // 340 332 }); 341 333 } 342 assertTopLvalue( translationUnit );343 334 { 344 335 Stats::Heap::newPass("validate-C"); … … 349 340 InitTweak::fixReturnStatements( translationUnit ); // must happen before autogen 350 341 } 351 assertTopLvalue( translationUnit );352 342 { 353 343 Stats::Heap::newPass("validate-D"); 354 344 Stats::Time::BlockGuard guard("validate-D"); 355 assertTopLvalue( translationUnit );356 345 Stats::Time::TimeBlock("Apply Concurrent Keywords", [&]() { 357 346 Concurrency::applyKeywords( translationUnit ); 358 347 }); 359 clearInnerLvalue( translationUnit );360 assertTopLvalue( translationUnit );361 348 Stats::Time::TimeBlock("Forall Pointer Decay", [&]() { 362 349 acceptAll( translationUnit, fpd ); // must happen before autogenerateRoutines, after Concurrency::applyKeywords because uniqueIds must be set on declaration before resolution 363 350 }); 364 assertTopLvalue( translationUnit );365 351 Stats::Time::TimeBlock("Hoist Control Declarations", [&]() { 366 352 ControlStruct::hoistControlDecls( translationUnit ); // hoist initialization out of for statements; must happen before autogenerateRoutines 367 353 }); 368 assertTopLvalue( translationUnit );369 354 Stats::Time::TimeBlock("Generate Autogen routines", [&]() { 370 355 autogenerateRoutines( translationUnit ); // moved up, used to be below compoundLiteral - currently needs EnumAndPointerDecay_old 371 356 }); 372 clearInnerLvalue( translationUnit ); 373 } 374 assertTopLvalue( translationUnit ); 357 } 375 358 { 376 359 Stats::Heap::newPass("validate-E"); 377 360 Stats::Time::BlockGuard guard("validate-E"); 378 assertTopLvalue( translationUnit );379 361 Stats::Time::TimeBlock("Implement Mutex Func", [&]() { 380 362 Concurrency::implementMutexFuncs( translationUnit ); 381 363 }); 382 clearInnerLvalue( translationUnit );383 assertTopLvalue( translationUnit );384 364 Stats::Time::TimeBlock("Implement Thread Start", [&]() { 385 365 Concurrency::implementThreadStarter( translationUnit ); 386 366 }); 387 assertTopLvalue( translationUnit );388 367 Stats::Time::TimeBlock("Compound Literal", [&]() { 389 368 mutateAll( translationUnit, compoundliteral ); 390 369 }); 391 assertTopLvalue( translationUnit );392 370 Stats::Time::TimeBlock("Resolve With Expressions", [&]() { 393 371 ResolvExpr::resolveWithExprs( translationUnit ); // must happen before FixObjectType because user-code is resolved and may contain with variables 394 372 }); 395 clearInnerLvalue( translationUnit ); 396 } 397 assertTopLvalue( translationUnit ); 373 } 398 374 { 399 375 Stats::Heap::newPass("validate-F"); 400 376 Stats::Time::BlockGuard guard("validate-F"); 401 assertTopLvalue( translationUnit );402 377 Stats::Time::TimeBlock("Fix Object Type", [&]() { 403 378 FixObjectType::fix( translationUnit ); 404 379 }); 405 assertTopLvalue( translationUnit );406 380 Stats::Time::TimeBlock("Array Length", [&]() { 407 381 ArrayLength::computeLength( translationUnit ); 408 382 }); 409 clearInnerLvalue( translationUnit );410 assertTopLvalue( translationUnit );411 383 Stats::Time::TimeBlock("Find Special Declarations", [&]() { 412 384 Validate::findSpecialDecls( translationUnit ); 413 385 }); 414 assertTopLvalue( translationUnit );415 386 Stats::Time::TimeBlock("Fix Label Address", [&]() { 416 387 mutateAll( translationUnit, labelAddrFixer ); 417 388 }); 418 assertTopLvalue( translationUnit );419 389 Stats::Time::TimeBlock("Handle Attributes", [&]() { 420 390 Validate::handleAttributes( translationUnit ); 421 391 }); 422 392 } 423 assertTopLvalue( translationUnit );424 393 } 425 394 -
src/SynTree/AddressExpr.cc
rb3976bf rcc4218f 42 42 AddressExpr::AddressExpr( Expression *arg ) : Expression(), arg( arg ) { 43 43 if ( arg->result ) { 44 if ( arg-> get_lvalue() ) {44 if ( arg->result->get_lvalue() ) { 45 45 // lvalue, retains all layers of reference and gains a pointer inside the references 46 46 set_result( addrType( arg->result ) ); -
src/SynTree/BasicType.cc
rb3976bf rcc4218f 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 4 21:07:44201913 // Update Count : 1 312 // Last Modified On : Thu Jan 31 21:37:36 2019 13 // Update Count : 12 14 14 // 15 15 … … 31 31 bool BasicType::isInteger() const { 32 32 return kind <= UnsignedInt128; 33 #if 0 34 switch ( kind ) { 35 case Bool: 36 case Char: 37 case SignedChar: 38 case UnsignedChar: 39 case ShortSignedInt: 40 case ShortUnsignedInt: 41 case SignedInt: 42 case UnsignedInt: 43 case LongSignedInt: 44 case LongUnsignedInt: 45 case LongLongSignedInt: 46 case LongLongUnsignedInt: 47 case SignedInt128: 48 case UnsignedInt128: 49 return true; 50 case Float: 51 case Double: 52 case LongDouble: 53 case FloatComplex: 54 case DoubleComplex: 55 case LongDoubleComplex: 56 case FloatImaginary: 57 case DoubleImaginary: 58 case LongDoubleImaginary: 59 case Float80: 60 case Float128: 61 return false; 62 case NUMBER_OF_BASIC_TYPES: 63 assert( false ); 64 } // switch 65 assert( false ); 66 return false; 67 #endif 33 68 } 34 69 -
src/SynTree/Expression.cc
rb3976bf rcc4218f 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed Aug 7 17:03:00201913 // Update Count : 6 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 25 22:21:48 2019 13 // Update Count : 61 14 14 // 15 15 … … 61 61 delete env; 62 62 delete result; 63 }64 65 bool Expression::get_lvalue() const {66 return result->get_lvalue();67 63 } 68 64 -
src/SynTree/Expression.h
rb3976bf rcc4218f 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed Aug 7 16:56:00201913 // Update Count : 5 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 25 22:21:44 2019 13 // Update Count : 50 14 14 // 15 15 … … 71 71 const Type * get_result() const { return result; } 72 72 void set_result( Type * newValue ) { result = newValue; } 73 bool get_lvalue() const;74 73 75 74 TypeSubstitution * get_env() const { return env; } -
src/SynTree/Type.cc
rb3976bf rcc4218f 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sun Aug 4 21:05:07201913 // Update Count : 4 511 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri Jul 12 15:48:00 2019 13 // Update Count : 44 14 14 // 15 15 #include "Type.h" … … 24 24 using namespace std; 25 25 26 const char * BasicType::typeNames[] = { 26 const char *BasicType::typeNames[] = { 27 #if 0 28 "_Bool", 29 "char", 30 "signed char", 31 "unsigned char", 32 "signed short int", 33 "unsigned short int", 34 "signed int", 35 "unsigned int", 36 "signed long int", 37 "unsigned long int", 38 "signed long long int", 39 "unsigned long long int", 40 "float", 41 "double", 42 "long double", 43 "float _Complex", 44 "double _Complex", 45 "long double _Complex", 46 "float _Imaginary", 47 "double _Imaginary", 48 "long double _Imaginary", 49 "__int128", 50 "unsigned __int128", 51 "__float80", 52 "__float128", 53 "_Float16", 54 "_Float32", 55 "_Float32x", 56 "_Float64", 57 "_Float64x", 58 "_Float128", 59 "_Float128x", 60 "_Float16 _Complex", 61 "_Float32 _Complex", 62 "_Float32x _Complex", 63 "_Float64 _Complex", 64 "_Float64x _Complex", 65 "_Float128 _Complex", 66 "_Float128x _Complex", 67 #endif 27 68 "_Bool", 28 69 "char", … … 66 107 }; 67 108 static_assert( 68 sizeof(BasicType::typeNames) /sizeof(BasicType::typeNames[0]) == BasicType::NUMBER_OF_BASIC_TYPES,109 sizeof(BasicType::typeNames)/sizeof(BasicType::typeNames[0]) == BasicType::NUMBER_OF_BASIC_TYPES, 69 110 "Each basic type name should have a corresponding kind enum value" 70 111 ); … … 111 152 TypeSubstitution Type::genericSubstitution() const { assertf( false, "Non-aggregate type: %s", toCString( this ) ); } 112 153 113 void Type::print( std::ostream & os, Indenter indent ) const {154 void Type::print( std::ostream &os, Indenter indent ) const { 114 155 if ( ! forall.empty() ) { 115 156 os << "forall" << std::endl; -
src/SynTree/module.mk
rb3976bf rcc4218f 49 49 SynTree/TypeSubstitution.cc \ 50 50 SynTree/Attribute.cc \ 51 SynTree/DeclReplacer.cc \ 52 SynTree/TopLvalue.cc 51 SynTree/DeclReplacer.cc 53 52 54 53 SRC += $(SRC_SYNTREE) -
src/main.cc
rb3976bf rcc4218f 59 59 #include "ResolvExpr/Resolver.h" // for resolve 60 60 #include "SymTab/Validate.h" // for validate 61 #include "SynTree/TopLvalue.h" // for assertTopLvalue, clearInn...62 61 #include "SynTree/Declaration.h" // for Declaration 63 62 #include "SynTree/Visitor.h" // for acceptAll 64 63 #include "Tuples/Tuples.h" // for expandMemberTuples, expan... 65 64 #include "Virtual/ExpandCasts.h" // for expandCasts 66 67 65 68 66 using namespace std; … … 259 257 Stats::Time::StopBlock(); 260 258 261 //std::cerr << "Post-Parse Check" << std::endl;262 clearInnerLvalue( translationUnit );263 assertTopLvalue( translationUnit );264 265 259 // add the assignment statement after the initialization of a type parameter 266 260 PASS( "Validate", SymTab::validate( translationUnit, symtabp ) ); … … 281 275 } // if 282 276 283 assertTopLvalue( translationUnit );284 277 PASS( "Fix Labels", ControlStruct::fixLabels( translationUnit ) ); 285 assertTopLvalue( translationUnit );286 278 PASS( "Fix Names", CodeGen::fixNames( translationUnit ) ); 287 assertTopLvalue( translationUnit );288 279 PASS( "Gen Init", InitTweak::genInit( translationUnit ) ); 289 assertTopLvalue( translationUnit );290 280 PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( translationUnit ) ); 291 assertTopLvalue( translationUnit );292 281 if ( libcfap ) { 293 282 // generate the bodies of cfa library functions … … 313 302 } // if 314 303 315 assertTopLvalue( translationUnit );316 317 304 PASS( "Resolve", ResolvExpr::resolve( translationUnit ) ); 318 305 if ( exprp ) { … … 321 308 } // if 322 309 323 clearInnerLvalue( translationUnit );324 assertTopLvalue( translationUnit );325 326 310 // fix ObjectDecl - replaces ConstructorInit nodes 327 311 PASS( "Fix Init", InitTweak::fix( translationUnit, buildingLibrary() ) ); 328 clearInnerLvalue( translationUnit );329 assertTopLvalue( translationUnit );330 312 if ( ctorinitp ) { 331 313 dump ( translationUnit ); … … 334 316 335 317 PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( translationUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused 336 assertTopLvalue( translationUnit );337 318 338 319 PASS( "Translate EHM" , ControlStruct::translateEHM( translationUnit ) ); 339 assertTopLvalue( translationUnit );340 320 341 321 PASS( "Gen Waitfor" , Concurrency::generateWaitFor( translationUnit ) ); 342 clearInnerLvalue( translationUnit );343 assertTopLvalue( translationUnit );344 322 345 323 PASS( "Convert Specializations", GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded 346 clearInnerLvalue( translationUnit );347 assertTopLvalue( translationUnit );348 324 349 325 PASS( "Expand Tuples", Tuples::expandTuples( translationUnit ) ); // xxx - is this the right place for this? 350 assertTopLvalue( translationUnit );351 326 352 327 if ( tuplep ) { … … 356 331 357 332 PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM 358 assertTopLvalue( translationUnit );359 333 360 334 PASS( "Instantiate Generics", GenPoly::instantiateGeneric( translationUnit ) ); … … 363 337 return EXIT_SUCCESS; 364 338 } // if 365 clearInnerLvalue( translationUnit );366 assertTopLvalue( translationUnit );367 339 PASS( "Convert L-Value", GenPoly::convertLvalue( translationUnit ) ); 368 clearInnerLvalue( translationUnit ); 369 assertTopLvalue( translationUnit ); 340 370 341 371 342 if ( bboxp ) { … … 374 345 } // if 375 346 PASS( "Box", GenPoly::box( translationUnit ) ); 376 clearInnerLvalue( translationUnit );377 assertTopLvalue( translationUnit );378 347 379 348 if ( bcodegenp ) { … … 387 356 388 357 CodeTools::fillLocations( translationUnit ); 389 assertTopLvalue( translationUnit );390 358 PASS( "Code Gen", CodeGen::generate( translationUnit, *output, ! genproto, prettycodegenp, true, linemarks ) ); 391 359 -
tests/.expect/gccExtensions.x64.txt
rb3976bf rcc4218f 291 291 signed int _X2m2A0A0i_2[((unsigned long int )10)][((unsigned long int )10)]; 292 292 signed int _X2m3A0A0i_2[((unsigned long int )10)][((unsigned long int )10)]; 293 void _X4f128Fv_n__2(__int128 _X1in_2); 294 void _X4f128Fv_o__2(unsigned __int128 __anonymous_object0); 295 __int128 _X6i128_0n_2; 296 { 297 ((void)_X4f128Fv_n__2(_X6i128_0n_2)); 298 } 299 300 unsigned __int128 _X6i128_1o_2; 301 { 302 ((void)_X4f128Fv_o__2(_X6i128_1o_2)); 303 } 304 305 __int128 _X6i128_2n_2; 306 { 307 ((void)_X4f128Fv_n__2(_X6i128_2n_2)); 308 } 309 310 unsigned __int128 _X6i128_3o_2; 311 { 312 ((void)_X4f128Fv_o__2(_X6i128_3o_2)); 313 } 314 293 { 294 ((void)(_X12_retval_maini_1=0) /* ?{} */); 295 } 296 297 return _X12_retval_maini_1; 315 298 { 316 299 ((void)(_X12_retval_maini_1=0) /* ?{} */); -
tests/.expect/gccExtensions.x86.txt
rb3976bf rcc4218f 296 296 297 297 return _X12_retval_maini_1; 298 { 299 ((void)(_X12_retval_maini_1=0) /* ?{} */); 300 } 301 302 return _X12_retval_maini_1; 298 303 } 299 304 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); } -
tests/Makefile.in
rb3976bf rcc4218f 235 235 CYGPATH_W = @CYGPATH_W@ 236 236 DEFS = @DEFS@ 237 DEMANGLER = @DEMANGLER@238 237 DEPDIR = @DEPDIR@ 239 238 DLLTOOL = @DLLTOOL@ … … 261 260 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 262 261 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 263 LIBDEMANGLE = @LIBDEMANGLE@264 262 LIBOBJS = @LIBOBJS@ 265 263 LIBS = @LIBS@ -
tests/gccExtensions.cfa
rb3976bf rcc4218f 10 10 // Created On : Sun Aug 14 17:28:17 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 5 18:04:37 201913 // Update Count : 2812 // Last Modified On : Tue Nov 6 17:54:20 2018 13 // Update Count : 11 14 14 // 15 15 … … 50 50 51 51 L1: L2: 52 asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5"53 : /* No outputs. */54 : "r"(src), "r"(&dst)55 : "r5", "memory"56 : L1, L2 );52 asm goto ( "frob %%r5, %1; jc %l[L1]; mov (%2), %%r5" 53 : /* No outputs. */ 54 : "r"(src), "r"(&dst) 55 : "r5", "memory" 56 : L1, L2 ); 57 57 58 58 // alternative type/qualifer names … … 110 110 struct __attribute(()) s4 { int i; } x2, y2 __attribute(()); 111 111 112 int m1 [10] __attribute(());113 int m2 [10][10] __attribute(());112 int m1 [10] __attribute(()); 113 int m2 [10][10] __attribute(()); 114 114 int __attribute(()) m3 [10][10]; 115 115 // int ( __attribute(()) m4 [10] )[10]; 116 116 117 // int128 118 119 #if defined( __SIZEOF_INT128__ ) 120 void f128( __int128 i ); 121 void f128( __uint128_t ); 122 123 __int128 i128_0; 124 f128( i128_0 ); 125 unsigned __int128 i128_1; 126 f128( i128_1 ); 127 __int128_t i128_2; 128 f128( i128_2 ); 129 __uint128_t i128_3; 130 f128( i128_3 ); 131 #endif 117 return 0; 132 118 } 133 119 -
tests/pybin/settings.py
rb3976bf rcc4218f 19 19 class Architecture: 20 20 KnownArchitectures = { 21 'x64' : 'x64',22 'x86-64' : 'x64',23 'x86_64' : 'x64',24 ' x86' : 'x86',25 ' aarch64' : 'arm',21 'x64' : 'x64', 22 'x86-64' : 'x64', 23 'x86_64' : 'x64', 24 'aarch64' : 'x64', 25 'x86' : 'x86', 26 26 'i386' : 'x86', 27 27 'i486' : 'x86', 28 28 'i686' : 'x86', 29 29 'Intel 80386' : 'x86', 30 'arm' : 'arm',31 'ARM' : 'arm',30 'arm' : 'arm', 31 'ARM' : 'arm', 32 32 } 33 33 -
tools/Makefile.in
rb3976bf rcc4218f 225 225 CYGPATH_W = @CYGPATH_W@ 226 226 DEFS = @DEFS@ 227 DEMANGLER = @DEMANGLER@228 227 DEPDIR = @DEPDIR@ 229 228 DLLTOOL = @DLLTOOL@ … … 251 250 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 252 251 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 253 LIBDEMANGLE = @LIBDEMANGLE@254 252 LIBOBJS = @LIBOBJS@ 255 253 LIBS = @LIBS@ -
tools/prettyprinter/Makefile.in
rb3976bf rcc4218f 254 254 CYGPATH_W = @CYGPATH_W@ 255 255 DEFS = @DEFS@ 256 DEMANGLER = @DEMANGLER@257 256 DEPDIR = @DEPDIR@ 258 257 DLLTOOL = @DLLTOOL@ … … 280 279 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 281 280 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 282 LIBDEMANGLE = @LIBDEMANGLE@283 281 LIBOBJS = @LIBOBJS@ 284 282 LIBS = @LIBS@
Note:
See TracChangeset
for help on using the changeset viewer.