[clang] Mechanically port bulk of x86 builtins to TableGen (PR #120831)
Chandler Carruth via cfe-commits
cfe-commits at lists.llvm.org
Sat Jan 4 02:36:25 PST 2025
================
@@ -108,9 +109,15 @@ class PrototypeParser {
} else if (T.consume_back("&")) {
ParseType(T);
Type += "&";
+ } else if (T.consume_front("long long")) {
----------------
chandlerc wrote:
Sure, I use the Fish shell and have a bunch of command line tools that help with this installed:
- https://github.com/BurntSushi/ripgrep as `rg`, nicer form of `grep`
- https://github.com/chmln/sd as `sd`, nicer form of `sed` for line-based regex search and replace
Combined, they let me write a `diff` command like:
```fish
diff -u (rg -I '^(TARGET|BUILTIN)' BuiltinsX86.def BuiltinsX86.inc | sd '^BUILTIN\((.*)\)' 'TARGET_BUILTIN($1, "")' | sd ' +' ' ' | sd ',([X"])' ', $1' | sort | psub) (rg '^TARGET' dev/tools/clang/include/clang/Basic/BuiltinsX86.inc | sort | psub)
```
Here `BuiltinsX86.def` and `BuiltinsX86.inc` are copies of the `.def` and `.inc` from before this PR, and `dev/tools/.../BuiltinsX86.inc` is the `.inc` produced in my development build.
All the uses of `sd` on the original `.def` and `.inc` files are to process away weird whitespace artifacts, and the use of `BUILTIN` instead of `TARGET_BUILTIN` in four places.
https://github.com/llvm/llvm-project/pull/120831
More information about the cfe-commits
mailing list