[cfe-dev] patch: more builtin support
Daniel Dunbar
daniel at zuster.org
Mon Jul 21 10:28:35 PDT 2008
> Looks great to me with one minor change: we don't want the clang
> testsuite to actually execute code. Please make the test just be
> something like this: ...
Done. The grep works in this case but this policy is going to be harder
to deal with for other codegen tests -- either the test is going to be very
fragile or just not written.
To take a current example, how do you check that the accesses to the
following bit-field are being compiled correctly without running code:
--
struct {
_Bool x : 2;
} x;
int foo () {
return x.x += 1;
}
--
Is running code with lli verboten?
- Daniel
----- Original Message ----
From: Chris Lattner <clattner at apple.com>
To: Daniel Dunbar <daniel at zuster.org>
Cc: cfe-dev at cs.uiuc.edu
Sent: Saturday, July 19, 2008 5:23:26 PM
Subject: Re: [cfe-dev] patch: more builtin support
On Jul 18, 2008, at 4:34 PM, Daniel Dunbar wrote:
> This patch adds support for __builtin_{ffs[l][l], parity[l][l],
> popcount[l][l], huge_valf, huge_vall}.
> + test case
Looks great to me with one minor change: we don't want the clang
testsuite to actually execute code. Please make the test just be
something like this:
void test(int M, long long N) {
printf("%d %lld: %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
%d\n",
M, N,
__builtin_ffs(M), __builtin_ffsl(M), __builtin_ffsll(M),
__builtin_parity(M), __builtin_parityl(M),
__builtin_parityll(M),
__builtin_popcount(M), __builtin_popcountl(M),
__builtin_popcountll(M),
__builtin_ffs(N), __builtin_ffsl(N), __builtin_ffsll(N),
__builtin_parity(N), __builtin_parityl(N),
__builtin_parityll(N),
__builtin_popcount(N), __builtin_popcountl(N),
__builtin_popcountll(N));
}
with: clang -emit-llvm %s | not grep __builtin
or something like that. The llvm-test suite can be used to verify
that we don't miscompile them.
Thanks Daniel!
-Chris
More information about the cfe-dev
mailing list