Displaying 6 results from an estimated 6 matches for "neon_help".
Did you mean:
neon_helper
2010 Jan 20
0
[LLVMdev] updated code size comparison
...for each variable
where the behavior is not undefined?
Such a value must exist, or the entire function is useless if it always
has undefined behavior.
Sure, testing on 1 such value (or a random) value won't prove that the
result is correct, but may help finding trivial
miscompilations like the neon_helper case.
Alternatively a testcase could be manually constructed for the top 10
functions in the size comparison charts,
and see whether they are miscompiled. Repeat until top 10 has no
miscompilations.
>
> A potential solution is "under-constrained execution":
>
> http://ww...
2010 Jan 20
2
[LLVMdev] updated code size comparison
Hi Torok-
> Could you also add a main() for each of these files, and do
> a very simple test that the optimized functions actually work?
Unfortunately, testing isolated C functions is much harder than just
passing them random data!
Consider this function:
int foo (int x, int y) { return x+y; }
The behavior of foo() is undefined when x+y overflows. If course it is
trivial to come
2010 Jan 20
4
[LLVMdev] updated code size comparison
...ot undefined?
> Such a value must exist, or the entire function is useless if it always
> has undefined behavior.
Good point :).
> Sure, testing on 1 such value (or a random) value won't prove that the
> result is correct, but may help finding trivial
> miscompilations like the neon_helper case.
Are you absolutely sure it's a miscompilation? I have already shot myself
in the foot a couple times on the GCC mailing list or bugzilla by pointing
out a bug that turned out to be code with subtle undefined behavior...
> Alternatively a testcase could be manually constructed fo...
2010 Jan 20
0
[LLVMdev] updated code size comparison
...n64 compiler
>
Hi,
Could you also add a main() for each of these files, and do
a very simple test that the optimized functions actually work?
At least for functions that take only integers and return integers this
could be automated
if you compare -O0 output with the optimized outputs.
The neon_helper.c testcase is clearly misoptimized by gcc-head here:
http://embed.cs.utah.edu/embarrassing/jan_10/harvest/compare_clang-head_gcc-head/compare_23BD1620_disasm.shtml
Try calling it like this:
int main()
{
printf("%d\n", helper_neon_rshl_s8(0x12345, 15));
return 0;
}
Prints 74496...
2010 Jan 20
0
[LLVMdev] updated code size comparison
...ue must exist, or the entire function is useless if it always
>> has undefined behavior.
>
> Good point :).
>
>> Sure, testing on 1 such value (or a random) value won't prove that the
>> result is correct, but may help finding trivial
>> miscompilations like the neon_helper case.
>
> Are you absolutely sure it's a miscompilation? I have already shot
> myself in the foot a couple times on the GCC mailing list or bugzilla
> by pointing out a bug that turned out to be code with subtle undefined
> behavior...
Well if it is not then it is a qemu bug,...
2010 Jan 20
5
[LLVMdev] updated code size comparison
Hi folks,
I've posted an updated code size comparison between LLVM, GCC, and
others here:
http://embed.cs.utah.edu/embarrassing/
New in this version:
- much larger collection of harvested functions: more than 360,000
- bug fixes and UI improvements
- added the x86 Open64 compiler
John