NirViaje / softart

Automatically exported from code.google.com/p/softart
Other
0 stars 0 forks source link

Optimize performance of front end #206

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Description:
  Avoid lots of get_semantic and get_symbol when function and builtin type was initialized.

Original issue reported on code.google.com by wuye9036 on 5 Jul 2012 at 5:03

GoogleCodeExporter commented 8 years ago
See revision ae3a3f12d8c0.

Original comment by wuye9036 on 5 Jul 2012 at 5:07

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 8ef36d0e5162.

SASL:
  Refactor pety member functions.
  Now pety stores node_semantic for optimization.
  Add get2 function to pety to get prototype and its semantic.
  semantic_analyser::visit_child child now support get node_semantic of generated node to reduce "get_semantic" call.
  Add create semantic for create only.
  Optimized name mangler.

Original comment by wuye9036 on 6 Jul 2012 at 12:05

GoogleCodeExporter commented 8 years ago

Original comment by wuye9036 on 24 Jul 2012 at 2:48

GoogleCodeExporter commented 8 years ago

Original comment by wuye9036 on 4 Dec 2012 at 6:35

GoogleCodeExporter commented 8 years ago

Original comment by wuye9036 on 14 Dec 2012 at 3:50

GoogleCodeExporter commented 8 years ago
Not only performance issues on semantic analyser, but also on parser.

Original comment by wuye9036 on 14 Dec 2012 at 3:46

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 56d1818a14cf.

SASL:
  Add profiler class to eflib.(incomplete)

Original comment by wuye9036 on 14 Dec 2012 at 6:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 021cd1e5ccad.

SASL:
  Profiler updated.
  Compiler now work with profiler.

Original comment by wuye9036 on 14 Dec 2012 at 6:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision ecac532bed26.

SASL:
  The error message formatting of diag_item now is lazy.
  Performance of parser is optimized.

Original comment by wuye9036 on 14 Dec 2012 at 6:17

GoogleCodeExporter commented 8 years ago
Semantic analyzer is bottleneck again.
Almost all time is costed on register_builtin_functions.
We try to optimize it.

Original comment by wuye9036 on 14 Dec 2012 at 6:21

GoogleCodeExporter commented 8 years ago
This issue was updated by revision bc72b0f03bf1.

SASL:
  Add the first version of fixed_basic_string which is optmizated for read-only.

Original comment by wuye9036 on 20 Dec 2012 at 2:11

GoogleCodeExporter commented 8 years ago
This issue was updated by revision e1f5a3776914.

SASL:
  Front-end optimizations:
    1. Improve fixed string.
    2. Optimize fixed_string initialization when parameter is null or empty.
    2. Change some functions with string parameter to fixed_string.
    3. Replace fname_t with fixed_string.
    4. Did not execute current_symbol->add_child when name is null.
    5. Associated node is initialized to null when node is created by
       'symbol::create' to reduce calling of 'symbols_dict_.erase(x)'.
  Add process priority support to test_main.cpp.in.

Original comment by wuye9036 on 20 Dec 2012 at 2:11

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 4679723bfc84.

EFLIB:
  Add lock function to atomic.
  Add fixed_string::mutable_raw_string().
  Remove compiler_infos from sasl/enums.
  Start to split function definition from function type.
    1. Rename function_type to function_full_def, parameter to parameter_full.
    2. Add function_type, function_def and parameter.
  Porting name mangling to pety, but not been used yet.

Original comment by wuye9036 on 20 Dec 2012 at 2:11

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 266b72a1c152.

SASL:
  Add function_type, function_def and parameter to visitor.
  Update performance document.

Original comment by wuye9036 on 20 Dec 2012 at 2:11

GoogleCodeExporter commented 8 years ago
Symbol will be optimized as following:

1. Operator and intrinsic will be mangled lazy (When function is need to 
compiled to IR function).
2. Overloading in symbol will be not storing mangled name as index any more, 
but store overloaded function prototype and declarations.

Built-in functions registration will be optimized as following:

1. Function type of intrinsic and operators should be reused as much as 
possible.

Original comment by wuye9036 on 20 Dec 2012 at 2:22

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 0365c8b3aabd.

SASL:
  Now commit return an auto_ptr or unique_ptr.

Original comment by wuye9036 on 27 Dec 2012 at 5:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision df4d228409de.

SASL:
  Split function_type, function_def and parameter.
  Now function_type, function_def and parameter works.
  Add overloading checking to avoid same signature.
  Clear associated node before link_symbol in symbol::add_function_end to avoid unnecessary erasing.

Original comment by wuye9036 on 27 Dec 2012 at 5:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision f4509a54b5d6.

SASL:
  Now diag_chat support save/restore to reduce diag_chat merging.

Original comment by wuye9036 on 27 Dec 2012 at 5:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision 6805146ee544.

SASL:
  Remove unused 'external' flag for intrinsic.
  Add symbol::get_overload_position and symbol::unchecked_insert_overload
       to optimize builtin function symbol registration.
  Implements new built in function registration but not used and tested.

Original comment by wuye9036 on 27 Dec 2012 at 5:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision dfde60994f30.

SASL:
  Fixed a type error in cg_impl and abi_analyser.
  Add missing symbols for parameter and function.

Original comment by wuye9036 on 27 Dec 2012 at 5:17

GoogleCodeExporter commented 8 years ago
This issue was updated by revision f489bdaf6a65.

SASL:
  Fixed bugs of register_builtin_functions2 and symbol.

Original comment by wuye9036 on 27 Dec 2012 at 5:17

GoogleCodeExporter commented 8 years ago
Performance of front-end has been increased 70% in debug mode and almost one or 
two times in release mode.

Original comment by wuye9036 on 27 Dec 2012 at 5:24