Branch: Tag:

2015-12-14

2015-12-14 13:59:51 by Per Hedbor <ph@opera.com>

On this branch portable bytecode generation is not normally done

This actually noticeably speeds up the compiler and also saves about
15% of RAM when starting hilfe.

If the decode_value code is modified to free the portable bytecode
_TWICE_.

This will not be merged to 8.1 until I figure out _why_ that is. It
should only need to be freed once, but I guess it's in the string
table twice?

24:   #include "pikecode.h"   #include "pike_compiler.h"    + int store_portable_bytecode;   #ifdef PIKE_DEBUG   static int hasarg(int opcode)   {
207:   #endif       /* No need to do this for constant evaluations. */ -  if (store_linenumbers) { +  if (store_linenumbers && store_portable_bytecode) {    p_wchar2 *current_tripple;    struct pike_string *previous_file = NULL;    INT_TYPE previous_line = 0;
478:    ins_byte(0);   #endif    -  if (store_linenumbers) { +  if (store_linenumbers && store_portable_bytecode) {    ins_data(store_prog_string(tripples));    free_string(tripples);    } else {