Remove information about nonexistent computed gotos :)

This commit is contained in:
John Keiser 2020-08-10 14:07:32 -07:00
parent ef45cd3342
commit 1b69612246
4 changed files with 0 additions and 26 deletions

View File

@ -197,11 +197,6 @@ jobs:
executor: gcc10
environment: { CXXFLAGS: -march=nehalem }
steps: [ cmake_test ]
no-computed-goto-gcc10:
description: Build, run tests and check performance on GCC 7 with -DSIMDJSON_NO_COMPUTED_GOTO=true
executor: gcc10
environment: { CXXFLAGS: -DSIMDJSON_NO_COMPUTED_GOTO=true }
steps: [ cmake_test ]
workflows:
version: 2.1
@ -231,7 +226,6 @@ workflows:
# quicker make single-implementation tests
- arch-haswell-gcc10
- arch-nehalem-gcc10
- no-computed-goto-gcc10
# testing "just the library"
- justlib-gcc10

View File

@ -8,7 +8,6 @@ are still some scenarios where tuning can enhance performance.
* [Keeping documents around for longer](#keeping-documents-around-for-longer)
* [Server Loops: Long-Running Processes and Memory Capacity](#server-loops-long-running-processes-and-memory-capacity)
* [Large files and huge page support](#large-files-and-huge-page-support)
* [Computed GOTOs](#computed-gotos)
* [Number parsing](#number-parsing)
* [Visual Studio](#visual-studio)
* [Downclocking](#downclocking)
@ -122,18 +121,6 @@ use the `-H` flag to omit the memory allocation cost from the benchmark results.
./parse -H largefile # without memory allocation
```
Computed GOTOs
--------------
For best performance, we use a technique called "computed goto" when the compiler supports it, it is
also sometimes described as "Labels as Values". Though it is not part of the C++ standard, it is
supported by many major compilers and it brings measurable performance benefits that are difficult
to achieve otherwise. The computed gotos are automatically disabled under Visual Studio.
If you wish to forcefully disable computed gotos, you can do so by compiling the code with
`-DSIMDJSON_NO_COMPUTED_GOTO=1`. It is not recommended to disable computed gotos if your compiler
supports it. In fact, you should almost never need to be concerned with computed gotos.
Number parsing
--------------

View File

@ -21,7 +21,6 @@
* Under clang for Windows, we enable:
* * target pragmas so that part and only part of the
* code gets compiled for advanced instructions.
* * computed gotos.
*
*/
#ifdef __clang__

View File

@ -10,12 +10,6 @@ struct scope_descriptor {
uint32_t count; // how many elements in the scope
}; // struct scope_descriptor
#ifdef SIMDJSON_USE_COMPUTED_GOTO
typedef void* ret_address_t;
#else
typedef char ret_address_t;
#endif
class dom_parser_implementation final : public internal::dom_parser_implementation {
public:
/** Tape location of each open { or [ */