- Jan 14, 2009
-
-
Devang Patel authored
Keep "has debug info" big in MachineModuleInfo to avoid circular dependency between AsmPrinter and CodeGen. llvm-svn: 62191
-
- Dec 10, 2008
-
-
Evan Cheng authored
- Emit DW_AT_byte_size for struct and union of size zero. - Emit DW_AT_declaration for forward type declaration. llvm-svn: 60812
-
- Nov 10, 2008
-
-
Chris Lattner authored
an array that is empty. Instead of requiring this array, allow a null pointer. This shrinks all forward references of structs. llvm-svn: 58959
-
- Oct 16, 2008
-
-
Dan Gohman authored
because it declares a std::vector<MachineMove>, and strict concept checking requires the definition of MachineMove to be available. llvm-svn: 57617
-
- Sep 23, 2008
-
-
Evan Cheng authored
llvm-svn: 56475
-
- Sep 22, 2008
-
-
Evan Cheng authored
llvm-svn: 56469
-
- Sep 04, 2008
-
-
Dan Gohman authored
llvm-svn: 55779
-
- Jul 09, 2008
-
-
Bill Wendling authored
functions and junk. llvm-svn: 53279
-
- Jul 07, 2008
-
-
Bill Wendling authored
llvm-svn: 53206
-
Bill Wendling authored
llvm-svn: 53202
-
- Jul 04, 2008
-
-
Bill Wendling authored
llvm-svn: 53123
-
Bill Wendling authored
slow the compiler down at -O0 some 30% or more. Ooops. llvm-svn: 53120
-
- Jul 02, 2008
-
-
Bill Wendling authored
llvm-svn: 53003
-
Bill Wendling authored
llvm-svn: 53001
-
Bill Wendling authored
- Don't use GlobalVariable::LinkageTypes when unsigned works. llvm-svn: 52987
-
- Jun 30, 2008
-
-
Evan Cheng authored
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. - Correctly handle memcpy from constant string which is zero-initialized. llvm-svn: 52891
-
- Jun 29, 2008
-
-
Anton Korobeynikov authored
Move GetConstantStringInfo to lib/Analysis. Remove string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. This unbreaks llvm-gcc bootstrap. llvm-svn: 52884
-
- Jun 27, 2008
-
-
Bill Wendling authored
match normal naming scheme. llvm-svn: 52820
-
Bill Wendling authored
llvm-svn: 52808
-
Bill Wendling authored
llvm-svn: 52806
-
Bill Wendling authored
- Make sure that we're not recalculating the size of a vector that never changes. llvm-svn: 52803
-
Bill Wendling authored
some uses of std::vector, where it's return std::vector by value. Yuck! llvm-svn: 52800
-
- Jun 26, 2008
-
-
Owen Anderson authored
llvm-svn: 52785
-
Eric Christopher authored
string output routine from Constant. Update all callers. Change debug intrinsic api slightly to accomodate move of routine, these now return values instead of strings. llvm-svn: 52748
-
- May 13, 2008
-
-
Dan Gohman authored
several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
-
- Apr 02, 2008
-
-
Dale Johannesen authored
review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. llvm-svn: 49064
-
- Mar 25, 2008
-
-
Dan Gohman authored
marked read-write. Use const so that they can be allocated in a read-only segment. llvm-svn: 48800
-
- Feb 02, 2008
-
-
Evan Cheng authored
SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc. Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes. For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time. llvm-svn: 46659
-
- Feb 01, 2008
-
-
Evan Cheng authored
llvm-svn: 46628
-
- Jan 31, 2008
-
-
Evan Cheng authored
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. llvm-svn: 46609
-
- Jan 30, 2008
-
-
Dale Johannesen authored
llvm-svn: 46569
-
Dale Johannesen authored
legitimate way of representing global variable GV in debug info. llvm-svn: 46565
-
- Jan 29, 2008
-
-
Dan Gohman authored
llvm-svn: 46514
-
- Jan 16, 2008
-
-
Dale Johannesen authored
associated function is so marked. llvm-svn: 46088
-
- Jan 07, 2008
-
-
Chris Lattner authored
llvm-svn: 45697
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 19, 2007
-
-
Duncan Sands authored
to know about calls that cannot throw ('nounwind'): if such a call does throw for some reason then the personality will terminate the program. The distinction between an ordinary call and a nounwind call is that an ordinary call gets an entry in the exception table but a nounwind call does not. This patch sets up the exception table appropriately. One oddity is that I've chosen to bracket nounwind calls with labels (like invokes) - the other choice would have been to bracket ordinary calls with labels. While bracketing ordinary calls is more natural (because bracketing by labels would then correspond exactly to getting an entry in the exception table), I didn't do it because introducing labels impedes some optimizations and I'm guessing that ordinary calls occur more often than nounwind calls. This fixes the gcc filter2 eh test, at least at -O0 (the inliner needs some tweaking at higher optimization levels). llvm-svn: 45197
-
- Dec 17, 2007
-
-
Christopher Lamb authored
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. llvm-svn: 45082
-
- Nov 30, 2007
-
-
Devang Patel authored
llvm-svn: 44446
-
- Sep 05, 2007
-
-
Duncan Sands authored
labels are generated bracketing each call (not just invokes). This is used to generate entries in the exception table required by the C++ personality. However it gets in the way of tail-merging. This patch solves the problem by no longer placing labels around ordinary calls. Instead we generate entries in the exception table that cover every instruction in the function that wasn't covered by an invoke range (the range given by the labels around the invoke). As an optimization, such entries are only generated for parts of the function that contain a call, since for the moment those are the only instructions that can throw an exception [1]. As a happy consequence, we now get a smaller exception table, since the same region can cover many calls. While there, I also implemented folding of invoke ranges - successive ranges are merged when safe to do so. Finally, if a selector contains only a cleanup, there's a special shorthand for it - place a 0 in the call-site entry. I implemented this while there. As a result, the exception table output (excluding filters) is now optimal - it cannot be made smaller [2]. The problem with throw filters is that folding them optimally is hard, and the benefit of folding them is minimal. [1] I tested that having trapping instructions (eg divide by zero) in such a region doesn't cause trouble. [2] It could be made smaller with the help of higher layers, eg by having branch folding reorder basic blocks ending in invokes with the same landing pad so they follow each other. I don't know if this is worth doing. llvm-svn: 41718
-