llvm-6502/include/llvm
Bill Wendling d751c64a67 If we have a function with an unreachable statement such that the ending debug
information is in an unreachable block, then it's possible that the high/low pc
values won't be set for the dwarf information. E.g., this function:

void abort(void) __attribute__((__noreturn__));
void dead_beef(void) __attribute__ ((noreturn));

int *b;

void dead_beef(void) {
  *b=0xdeadbeef;
  abort();
}

has a call to "@llvm.dbg.region.end" only in the unreachable block:

define void @dead_beef() noreturn nounwind  {
entry:
	call void @llvm.dbg.func.start(...)
	call void @llvm.dbg.stoppoint(...)
...
	call void @abort( ) noreturn nounwind 
	unreachable

return:		; No predecessors!
	call void @llvm.dbg.stoppoint(...)
	call void @llvm.dbg.region.end(...)
	ret void
}

The dwarf information emitted is something like:

0x00000084:     TAG_subprogram [5]  
                 AT_name( "dead_beef" )
                 AT_external( 0x01 )
                 AT_prototyped( 0x01 )
                 AT_decl_file( 0x01 )
                 AT_decl_line( 0x08 )

Note that this is *not* the best fix for this problem, but a band-aid for an
gaping wound. This code needs to be changed when we revamp our debugging
information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56628 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26 00:28:12 +00:00
..
ADT Add bound checks in SmallVector 2008-09-22 10:06:26 +00:00
Analysis Reapply 55859. This doesn't change anything as 2008-09-08 11:05:51 +00:00
Assembly we should use 'class' for non-pod types instead of 'struct' to 2008-08-24 18:38:56 +00:00
Bitcode Large mechanical patch. 2008-09-25 21:00:45 +00:00
CodeGen If we have a function with an unreachable statement such that the ending debug 2008-09-26 00:28:12 +00:00
CompilerDriver Remove silly semicolon. 2008-09-22 23:28:18 +00:00
Config Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
Debugger
ExecutionEngine Add DisableGVCompilation which forces the JIT to assert when it tries to allocate space for a GlobalVariable. 2008-09-24 16:25:55 +00:00
Support Large mechanical patch. 2008-09-25 21:00:45 +00:00
System Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable. 2008-09-18 07:54:21 +00:00
Target Reapply 56585:56589 with proper fix for some gcc versions 2008-09-25 21:00:33 +00:00
Transforms Remove the MarkModRef pass (use AddReadAttrs instead). 2008-09-19 08:23:44 +00:00
AbstractTypeUser.h
Argument.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Attributes.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
AutoUpgrade.h
BasicBlock.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
CallGraphSCCPass.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
CallingConv.h
Constant.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
Constants.h Prevent warning about conversion from 64-bit to 32-bit by (yuck) casting... 2008-09-19 18:34:40 +00:00
DerivedTypes.h
Function.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
GlobalAlias.h Make safer variant of alias resolution routine to be default 2008-09-09 20:05:04 +00:00
GlobalValue.h Add GlobalValue::{removeFromParent,eraseFromParent} 2008-08-29 07:30:15 +00:00
GlobalVariable.h Add GlobalValue::{removeFromParent,eraseFromParent} 2008-08-29 07:30:15 +00:00
InlineAsm.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
InstrTypes.h Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments 2008-09-09 01:02:47 +00:00
Instruction.def
Instruction.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
Instructions.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
IntrinsicInst.h Split the SelectionDAG-building code, including the FunctionLoweringInfo 2008-09-03 16:12:24 +00:00
Intrinsics.h Large mechanical patch. 2008-09-25 21:00:45 +00:00
Intrinsics.td Reapply 55899: First draft of EH support on x86/64-linux 2008-09-08 21:12:47 +00:00
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td Implement __sync_synchronize on ppc32. Patch by Gary Benson. 2008-08-22 17:20:54 +00:00
IntrinsicsX86.td
LinkAllPasses.h Remove the MarkModRef pass (use AddReadAttrs instead). 2008-09-19 08:23:44 +00:00
LinkAllVMCore.h
Linker.h
Module.h Switch the asmprinter (.ll) and all the stuff it requires over to 2008-08-23 22:23:09 +00:00
ModuleProvider.h
OperandTraits.h
Pass.h
PassAnalysisSupport.h
PassManager.h
PassManagers.h
PassSupport.h
SymbolTableListTraits.h
Type.h remove dead method. 2008-08-23 22:43:21 +00:00
TypeSymbolTable.h
Use.h backing out my last commit, it was not intended to go on the trunk 2008-09-19 15:13:20 +00:00
User.h
Value.h Make pointer parameter const for isUsedInBasicBlock. 2008-09-25 22:42:01 +00:00
ValueSymbolTable.h