summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Zapata <jorgeluis.zapata@gmail.com>2024-01-18 19:07:57 +0100
committerJorge Zapata <jorgeluis.zapata@gmail.com>2024-03-12 10:03:58 +0100
commit4322ed4479688ac902b2a1cc078d2519a5d31139 (patch)
treefee847668828d2032eeaf7a9d5b6108993948021
parent10f69d7c379375bd9f40bb213b033218fb74363d (diff)
docs: Update the ROADMAP and TODO files
Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/148>
-rw-r--r--ROADMAP24
-rw-r--r--ROADMAP.md54
-rw-r--r--TODO33
3 files changed, 54 insertions, 57 deletions
diff --git a/ROADMAP b/ROADMAP
deleted file mode 100644
index 1df6e67..0000000
--- a/ROADMAP
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Projects:
-
-* Memory management for executable sections of code.
-
-* Parser
-
-* APIs to handle the following use cases:
- - replacement for normal functions (schro)
- - construct function at runtime (pixman)
-
-* Handle compilation failure
- - fallback to emulation
-
-* Automatic testing of compiled code
-
-* Automatic speed measurement
-
-* Better MMX and SSE engine latency/throughput measurement
-
-* SSE write alignment
-
-
-
diff --git a/ROADMAP.md b/ROADMAP.md
new file mode 100644
index 0000000..7f52dc7
--- /dev/null
+++ b/ROADMAP.md
@@ -0,0 +1,54 @@
+Versions
+========
+
+0.6
+---
+- [ ] Migrate to GLib?
+
+0.5
+---
+- [ ] Reduce the API to the minimum to run orcc and the generated code
+- [ ] Remove orc-stdint.h.
+- [ ] For `ORC_ENABLE_UNSTABLE_API`, create a private header and keep the symbol there
+- [ ] Make the `OrcX86OpcodeIdx` to not include the accepted type of data (mem, registers, etc)
+- [ ] The `OrcX86Insn` and `OrcX86Opcode` have redundant fields. The instruction should include the prefix stuff, not the opcode
+
+0.4.9999
+--------
+- [ ] Make all .[ch] files to include only functions that belong to that particular component
+- [ ] Have all code formatted accordingly
+- [ ] Have a pre-commit hook to avoid new commits with wrong format
+- [ ] Avoid using any direct access to a structure from the generated code, use getters/setters instead
+- [ ] Avoid using any direct access to a structure from other components, use getters/setters instead
+- [ ] Put every tool under the tools folder
+- [ ] Have a folder per target
+- [ ] Share all program code between mmx, sse and avx
+- [ ] Move target code into a target related file, not a program related file
+- [ ] Properly set the first shift on x86 loops. A variable with alignment 16 on a 32 byte boundary (AVX) should start the loop at 4 shift, not 0
+- [ ] Properly align compiler variables on x86 arch, once a known alignment is know, based on iterations mark the `is_aligned`, not only for one var
+- [ ] Make `orc_compiler_append_code` and therefore `ORC_ASM_CODE` keep track of the current instruction, to put the comment in the correct place
+- [ ] Have an `ORC_TARGET` envvar to choose the target at runtime
+
+Past ideas
+==========
+The following items come from the previous TODO and ROADMAP files which still need to be confirmed
+
+- [ ] Memory management for executable sections of code.
+- [ ] Parser
+- [ ] APIs to handle the replacement for normal functions (schro)
+- [ ] APIs to handle the construction of functions at runtime (pixman)
+- [ ] Handle compilation failure to fallback to emulation
+- [ ] Automatic testing of compiled code
+- [ ] Automatic speed measurement
+- [ ] Better MMX and SSE engine latency/throughput measurement
+- [ ] SSE write alignment
+- [ ] Handle SSE cache information and small n
+- [ ] Contant n in NEON
+- [ ] Aligned source checks
+- [ ] New opcodes for sampling: video scaling, fir filtering, fir filtering with downsampling, upsampling/downsampling
+- [ ] New opcodes for composite
+- [ ] Float parameters
+- [ ] Inline orc calls in the compiler
+- [ ] Initialization functions in the compiler
+- [ ] Instruction scheduler
+- [ ] Improve emulation
diff --git a/TODO b/TODO
deleted file mode 100644
index dbc522c..0000000
--- a/TODO
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-sse: Handle cache information and small n
-
-neon: constant n
-
-aligned source checks
-
-new opcodes:
- - sampling: video scaling, fir filtering, fir filtering with
- downsampling, upsampling/downsampling
- - composite opcodes
-
-float parameters
-
-compiler: inline orc calls
-
-compiler: initialization function
-
-instruction scheduler
-
-improve emulation
-
-
-
-0.5
-===
-
-Remove orc-stdint.h.
-
-Remove lots of stuff from the public API.
-
-