Displaying 20 results from an estimated 597 matches for "noreturns".
Did you mean:
noreturn
2012 Nov 28
4
[LLVMdev] noreturn attribute on a call instruction vs noreturn on a function
Hi,
Building the following C code I get a call instruction that has no noreturn
attribute, while the function itself does have it.
void foo(void **b) {
__builtin_longjmp(b, 1);
}
define void @_Z3fooPPv(i8** %b) noreturn nounwind uwtable {
entry:
%0 = bitcast i8** %b to i8*
tail call void @llvm.eh.sjlj.longjmp(i8* %0)
2016 Mar 28
2
Ignoring coverage for noreturn decls
Hi all,
Recently I’ve noticed in coverage profiles that llvm_unreachable and the like are considered uncovered because there’s no special behavior in instrumentation to ‘ignore’ noreturn paths.
While I don’t necessarily think it’s ideal to ignore all noreturn decls, I think there’s definitely room for some heuristics around ignoring things like llvm_unreachable (perhaps opt-in?). I’m
2012 Nov 29
0
[LLVMdev] noreturn attribute on a call instruction vs noreturn on afunction
You can use CallInst::hasFnAttr(). It checks for attributes in the
instruction and in the function decl.
http://llvm.org/docs/doxygen/html/Instructions_8cpp_source.html#l00345
Nuno
----- Original Message -----
> Hi,
>
> Building the following C code I get a call instruction that has no
> noreturn
> attribute, while the function itself does have it.
>
> void foo(void **b)
2016 May 12
3
Why LR is saved before calling a 'noreturn' function ?
Dear all,
I don't get how llvm handles functions with __attribute__((noreturn)).
It seems that LR register is backed up on the stack whilst it will never be used to return from a 'noreturn' function.
I have this problem with a home-made backend but it seems that ARM flavour of clang has same behaviour.
By the way, SP is also saved, I don't understand why.
Is there a syntax error
2016 Mar 29
0
Ignoring coverage for noreturn decls
+ cfe-dev
> On Mar 28, 2016, at 1:23 PM, Harlan Haskins via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hi all,
>
> Recently I’ve noticed in coverage profiles that llvm_unreachable and the like are considered uncovered because there’s no special behavior in instrumentation to ‘ignore’ noreturn paths.
FWIW, Daniel Dunbar and a few others have brought up the lack of a
2012 Nov 28
0
[LLVMdev] noreturn attribute on a call instruction vs noreturn on a function
Hi Kostya,
On 28/11/12 14:47, Kostya Serebryany wrote:
> Hi,
>
> Building the following C code I get a call instruction that has no noreturn
> attribute, while the function itself does have it.
>
> void foo(void **b) {
> __builtin_longjmp(b, 1);
> }
>
>
> define void @_Z3fooPPv(i8** %b) noreturn nounwind uwtable {
> entry:
> %0 = bitcast i8** %b to i8*
2006 Nov 21
1
rsync v2.6.9: small patch fixing NORETURN failures
Hello,
as of gcc v2.7.2.1, the noreturn attribute needs to be given
*after* the prototype declaration and not before, but for
gcc v3.x, things changed for this attribute again, since
gcc v2.5.x did it the way, newer gcc versions prefer it...
I've applied a small unified diff, fixing this stuff.
THX for listening.
CU Tom.
(Thomas M.Ott)
Germany
-------------- next part --------------
---
2017 Nov 04
2
returns_twice / noreturn
Hello,
I am not sure about the semantic (if any) of returns_twice and noreturn
attributes.
int fork() __attribute__((returns_twice));
void join(int) __attribute__((noreturn));
int f(int n) {
int t = fork();
n++;
if (t != 0)
join(t);
return n;
}
Produces the following LLVM IR:
; Function Attrs: nounwind uwtable
define i32 @f(i32 %n) local_unnamed_addr #0 {
entry:
%call = call i32
2017 Nov 04
2
returns_twice / noreturn
On Fri, Nov 3, 2017 at 5:39 PM, Hal Finkel <hfinkel at anl.gov> wrote:
>
> On 11/03/2017 07:20 PM, Alexandre Isoard via llvm-dev wrote:
>
> Hello,
>
> I am not sure about the semantic (if any) of returns_twice and noreturn
> attributes.
>
> int fork() __attribute__((returns_twice));
> void join(int) __attribute__((noreturn));
>
> int f(int n) {
> int
2011 Sep 17
1
[LLVMdev] Jumping to a fixed address in Clang
I am compiling some code with Clang which needs to jump to a fixed
address to perform a "syscall". These fixed addresses contain valid
code.
I noticed that this code produces a warning:
typedef void (*exit_syscall_type) (int status) __attribute__((noreturn));
void _exit(int status) __attribute__ ((noreturn));
void _exit(int status) {
((exit_syscall_type)0x10000)(status);
}
This
2007 Jan 05
0
[IA64]: noreturn cannot be used if function may return
Hi Keir:
I spotted some bogus uses of the noreturn keyword on ia64.
[IA64]: noreturn cannot be used if function may return
The functions die_if_kernel and vmx_die_if_kernel can certainly
return. This disqualifies them from using the noreturn keyword
which is reserved for functions that never return.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Cheers,
--
Visit Openswan at
2011 Aug 19
2
[LLVMdev] How to halt a program
Guys,
I would like to instrument the bytecode that LLVM produces with
assertions. I have written the instrumentation code manually, but I do not
know how to halt the program in case the assertion is false. I took a look
into the bytecode that LLVM produces for a program like:
#include <stdlib.h>
int main() {
exit(1);
}
And it is like this:
define i32 @main() nounwind {
entry:
2017 Feb 14
0
[PATCH v2 1/2] GCC 7: Add __attribute__((noreturn)) to some usage functions which call exit.
This happens with GCC 7.0.1. The errors were all of the form:
qemu-speed-test.c: In function 'main':
qemu-speed-test.c:153:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
usage (EXIT_SUCCESS);
^~~~~~~~~~~~~~~~~~~~
qemu-speed-test.c:155:5: note: here
default:
^~~~~~~
---
builder/index-validate.c | 2 +-
2012 May 22
4
[LLVMdev] How to get llvm bitcode executed
Hi All,
I have a program that uses C++ STL a lot. To have the source code for
STL functions, I undefined "_GLIBCXX_EXTERN_TEMPLATE" in
c++config.h. In spite of this, after compilation (via clang) and
linking (via llvm-ld), the resulting bitcode contains a few declared
functions (with no definitions).
My question is: In the scenario where some function definitions are
missing in a llvm
2013 Aug 01
2
[LLVMdev] can i avoid saving CSRs for functions with noreturn
hi, list,
i am making a llvm compiler for shader-like programs. as we known, shader
programs are short and have less function calls. i found that i have to
save/restore callee-saved register(CSR) in prolog and epilog. because I
can violate ABI from driver(c code) and shader, i plan to append the
attribute 'noreturn' to all shader functions.
in PrologEpilogInserter.cpp, you can find that
2019 Aug 02
2
[RFC] Stack overflow and optimizations
During the review of https://reviews.llvm.org/D59978 we got to the
question whether we can optimize based on the assumption that stack
overflow is undefined behavior. While I think it is according to the
C++ standard, Windows Structured Exception Handling and signal
handlers might allow programs to recover/exit gracefully.
Concretely, the patch D59978 wants add the noreturn attribute to
functions
2009 Sep 21
1
[LLVMdev] disable insertion of unreachables
> If there's sensible control flow after a function returns, don't mark
> it or calls to it noreturn.
How do I prevent llvm-gcc from labelling a particular function with the
noreturn attribute so an unreachable is not inserted after a call to it?
Does llvm-gcc keep a list of functions somewhere that it thinks do not
return?
Max
On Tue, Sep 8, 2009 at 10:30 PM, Eli Friedman
2010 Jul 15
2
[LLVMdev] Why clang++ doesn't set 'noreturn' flag on declarations of __cxa_throw and _Unwind_Resume_or_Rethrow ?
When I compile some code with the near-trunk clang++ I get this:
...
tail call void @_Unwind_Resume_or_Rethrow(i8* %exn2) noreturn
unreachable
...
declare void @_Unwind_Resume_or_Rethrow(i8*)
...
Same with __cxa_throw. 'noreturn' is missing on declarations.
This seems to be a bug.
Also can _Unwind_Resume_or_Rethrow actually return? When I run some
simple exception code in JIT I
2011 Aug 19
0
[LLVMdev] How to halt a program
Victor Campos wrote:
> Guys,
>
> I would like to instrument the bytecode that LLVM produces with
> assertions. I have written the instrumentation code manually, but I do
> not know how to halt the program in case the assertion is false. I took
> a look into the bytecode that LLVM produces for a program like:
>
> #include <stdlib.h>
> int main() {
>
2013 Feb 21
0
[LLVMdev] [llvm] r175553 - Fix a bug in mayHaveSideEffects. Functions that do not return are now considered as instructions with side effects.
Hi Nadav,
> I almost missed your email because you replied only to the list. I understand your argument. I think that my fix addresses a part of it. It says that instructions that do not return should not be removed.
> The current implementation of mayReturn is to check the 'noreturn' function attribute. Are you suggesting to add a new attribute that is called 'mustreturn'