- Jul 15, 2009
-
-
Chris Lattner authored
llvm-svn: 75742
-
- Jul 14, 2009
-
-
David Greene authored
Have asm printers use formatted_raw_ostream directly to avoid a dynamic_cast<>. llvm-svn: 75670
-
Chris Lattner authored
additional bug fixes: 1. The bug that everyone hit was a problem in the asmprinter where it would remove $stub but keep the L prefix on a name when emitting the indirect symbol. This is easy to fix by keeping the name of the stub and the name of the symbol in a StringMap instead of just keeping a StringSet and trying to reconstruct it late. 2. There was a problem printing the personality function. The current logic to print out the personality function from the DWARF information is a bit of a cesspool right now that duplicates a bunch of other logic in the asm printer. The short version of it is that it depends on emitting both the L and _ prefix for symbols (at least on darwin) and until I can untangle it, it is best to switch the mangler back to emitting both prefixes. llvm-svn: 75646
-
Torok Edwin authored
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
-
Daniel Dunbar authored
--- Reverse-merging r75619 into '.': U lib/Target/DarwinTargetAsmInfo.cpp U lib/CodeGen/AsmPrinter/AsmPrinter.cpp --- Reverse-merging r75618 into '.': U lib/CodeGen/ELFWriter.cpp U lib/CodeGen/MachOCodeEmitter.cpp U lib/CodeGen/MachOWriter.cpp --- Reverse-merging r75617 into '.': U lib/Target/CBackend/CBackend.cpp --- Reverse-merging r75616 into '.': U tools/bugpoint/Miscompilation.cpp U tools/lto/LTOCodeGenerator.cpp U tools/lto/LTOModule.cpp llvm-svn: 75638
-
Chris Lattner authored
dubious looking things that I need to investigate in more detail. llvm-svn: 75619
-
Chris Lattner authored
indicates whether the label is private or not, instead of taking prefix stuff. One effect of this is that symbols will be generated with *just* the private prefix, instead of both the private prefix *and* the user-label-prefix, but this doesn't matter as long as it is consistent. For example we'll now get "Lfoo" instead of "L_foo". These are just assembler temporary labels anyway, so they never even make it into the .o file. llvm-svn: 75607
-
- Jul 13, 2009
-
-
David Greene authored
Add infrastructure to allow post instruction printing action triggers. We'll eventually use this to print comments in asm files and do other fun things. This adds interfaces to the AsmPrinter and changes TableGen to invoke the postInstructionAction when appropriate. It also add parameters to TargetAsmInfo to control comment layout. llvm-svn: 75490
-
- Jul 11, 2009
-
-
Torok Edwin authored
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
-
Torok Edwin authored
and abort()/exit() -> llvm_report_error(). llvm-svn: 75363
-
- Jul 01, 2009
-
-
Daniel Dunbar authored
- This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. llvm-svn: 74579
-
- Jun 25, 2009
-
-
Owen Anderson authored
llvm-svn: 74179
-
Owen Anderson authored
llvm-svn: 74132
-
- Jun 24, 2009
-
-
Chris Lattner authored
llvm-svn: 74101
-
Chris Lattner authored
llvm-svn: 74097
-
Chris Lattner authored
a bunch of code from all the targets, and eliminates nondeterministic ordering of directives being emitted in the output. llvm-svn: 74096
-
- Jun 19, 2009
-
-
Devang Patel authored
llvm-svn: 73784
-
Chris Lattner authored
llvm-svn: 73738
-
- Jun 18, 2009
-
-
Evan Cheng authored
On Darwin, ams printer should output a second label before a jump table so the linker knows it's a new atom. But this is only needed if the jump table is put in a separate section from the function body. llvm-svn: 73720
-
- Jun 15, 2009
-
-
Dan Gohman authored
llvm-svn: 73362
-
- May 21, 2009
-
-
Bill Wendling authored
bootstrapping. llvm-svn: 72200
-
Argyrios Kyrtzidis authored
DebugScope refers to a debug region, function or block. llvm-svn: 72191
-
- May 09, 2009
-
-
Duncan Sands authored
will make it more obvious what it represents, and stop it being confused with the StoreSize. llvm-svn: 71349
-
- May 07, 2009
-
-
Argyrios Kyrtzidis authored
No functionality change. llvm-svn: 71156
-
- Apr 30, 2009
-
-
Bill Wendling authored
which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
-
- Apr 29, 2009
-
-
Bill Wendling authored
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
-
- Apr 28, 2009
-
-
Sanjiv Gupta authored
llvm-svn: 70297
-
Bill Wendling authored
llvm-svn: 70275
-
Bill Wendling authored
use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
-
- Apr 15, 2009
-
-
Devang Patel authored
Construct and emit DW_TAG_inlined_subroutine DIEs for inlined subroutine scopes (only in FastISel mode). llvm-svn: 69116
-
- Apr 13, 2009
-
-
Chris Lattner authored
to support C99 inline, GNU extern inline, etc. Related bugzilla's include PR3517, PR3100, & PR2933. Nothing uses this yet, but it appears to work. llvm-svn: 68940
-
- Apr 10, 2009
-
-
Bill Wendling authored
llvm-svn: 68747
-
Bill Wendling authored
llvm-svn: 68745
-
Bill Wendling authored
the key. This will cause it to create a new std::string, which isn't wanted. Instead, pass back the "const char*". Modify the EmitString() method to take a "const char*". llvm-svn: 68741
-
- Apr 08, 2009
-
-
Chris Lattner authored
avoiding sign extension for the top octet. For "negative" chars, we'd print stuff like: .asciz "\702... now we print: .asciz "\302... llvm-svn: 68577
-
- Mar 25, 2009
-
-
Evan Cheng authored
llvm-svn: 67668
-
- Mar 24, 2009
-
-
Evan Cheng authored
llvm-svn: 67580
-
- Mar 23, 2009
-
-
Dale Johannesen authored
same as a normal i80 {low64, high16} rather than its own {high64, low16}. A depressing number of places know about this; I think I got them all. Bitcode readers and writers convert back to the old form to avoid breaking compatibility. llvm-svn: 67562
-
- Mar 20, 2009
-
-
Evan Cheng authored
For inline asm output operand that matches an input. Encode the input operand index in the high bits. llvm-svn: 67387
-
- Mar 13, 2009
-
-
Evan Cheng authored
Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants. 2. MachineConstantPool alignment field is also a log2 value. 3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values. 4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries. 5. Asm printer uses expensive data structure multimap to track constant pool entries by sections. 6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic. Solutions: 1. ConstantPoolSDNode alignment field is changed to keep non-log2 value. 2. MachineConstantPool alignment field is also changed to keep non-log2 value. 3. Functions that create ConstantPool nodes are passing in non-log2 alignments. 4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT. 5. Asm printer uses cheaper data structure to group constant pool entries. 6. Asm printer compute entry offsets after grouping is done. 7. Change JIT code to compute entry offsets on the fly. llvm-svn: 66875
-