The first one, as it would never ever leave the first while loop.
In case you don't know them, here are the 3 laws of optimization:
1. Don't do it.
2. Don't do it.
and only for advanced programmers:
3. Don't do it yet.
Seriously these kind of optimization are senseless in a normal game. Your game will be hardly ever slowed downed because of your game logic. You should optimize your code to readability or reuse ability instead.
If you still want an answer:
You can't really compare if, loops and function calls, as they do different things, and your two example doesn't do the same thing.
A while(cond) is speed wise similar to a single if, it is basically a conditional branch. A while(1) instead is a bit faster as it is only a simple jump (good for the cpu instruction pipeline).
A function call is something completely different. It copies the return address of the current function to the stack and then jumps to the new function address. Its still very fast.
On the other side all these information are useless if you use wait(1); as this would call the scheduler of the acknex engine, which cost way more than anything mentioned before.
For example you should change your first example from:
if(arrow_1.tilt<= -81)
{arrow_1.tilt = -80;waitt(1);}
if(arrow_1.tilt>= 45)
{arrow_1.tilt = 44;waitt(1);}
to
arrow_1.tilt = clamp(arrow_1.tilt, -80, 44);
It's easier to read, to understand, its less code and it is even faster.