[PATCH] D149816: [clang][Interp] Implement __builtin_strcmp
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu May 4 07:54:56 PDT 2023
aaron.ballman added inline comments.
================
Comment at: clang/lib/AST/Interp/Function.h:166-168
llvm::SmallVector<PrimType, 8> &&ParamTypes,
llvm::DenseMap<unsigned, ParamDescriptor> &&Params,
+ llvm::SmallVector<unsigned, 8> &&ParamOffsets, bool HasThisPointer,
----------------
Nit: this interface should be taking `llvm::SmallVectorImpl<Type>` rather than the concrete small vector type.
================
Comment at: clang/lib/AST/Interp/InterpBuiltin.cpp:22-23
+
+static bool interp__builtin_strcmp(InterpState &S, CodePtr OpPC,
+ InterpFrame *Frame) {
+ const Pointer &A = getParam<Pointer>(Frame, 0);
----------------
Thought: it would be nice if we could hoist as much of this implementation as we can into a helper function so that we can share most of the guts with `__builtin_memcmp()` as well.
Also, it would be good to generalize this so it works for `__builtin_wcscmp()` and `__builtin_wmemcmp()` as well.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149816/new/
https://reviews.llvm.org/D149816
More information about the cfe-commits
mailing list