- Sep 28, 2011
-
-
Bill Wendling authored
current IR-level pass. The old SjLj EH pass has some problems, especially with the new EH model. Most significantly, it violates some of the new restrictions the new model has. For instance, the 'dispatch' table wants to jump to the landing pad, but we cannot allow that because only an invoke's unwind edge can jump to a landing pad. This requires us to mangle the code something awful. In addition, we need to keep the now dead landingpad instructions around instead of CSE'ing them because the DWARF emitter uses that information (they are dead because no control flow edge will execute them - the control flow edge from an invoke's unwind is superceded by the edge coming from the dispatch). Basically, this pass belongs not at the IR level where SSA is king, but at the code-gen level, where we have more flexibility. llvm-svn: 140646
-
- Sep 25, 2011
-
-
Jakob Stoklund Olesen authored
No functional change intended. llvm-svn: 140470
-
- Sep 07, 2011
-
-
James Molloy authored
Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson. llvm-svn: 139237
-
- Aug 24, 2011
-
-
Evan Cheng authored
These are strictly utilities for registering targets and components. llvm-svn: 138450
-
- Aug 19, 2011
-
-
Jakob Stoklund Olesen authored
This is useful for unit tests. llvm-svn: 138028
-
- Jul 26, 2011
-
-
Evan Cheng authored
llvm-svn: 136031
-
Evan Cheng authored
llvm-svn: 136010
-
- Jul 20, 2011
-
-
Evan Cheng authored
There is still a bit more refactoring left to do in Targets. But we are now very close to fixing all the layering issues in MC. llvm-svn: 135611
-
Evan Cheng authored
- Introduce JITDefault code model. This tells targets to set different default code model for JIT. This eliminates the ugly hack in TargetMachine where code model is changed after construction. llvm-svn: 135580
-
Evan Cheng authored
TargetLoweringObjectFileImpl down to MCObjectFileInfo. TargetAsmInfo is done to one last method. It's *almost* gone! llvm-svn: 135569
-
- Jul 19, 2011
-
-
Evan Cheng authored
(including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. llvm-svn: 135468
-
- Jul 18, 2011
-
-
Evan Cheng authored
to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. llvm-svn: 135424
-
- Jul 15, 2011
-
-
Evan Cheng authored
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes. llvm-svn: 135219
-
- Jul 11, 2011
-
-
Evan Cheng authored
and MCSubtargetInfo. - Added methods to update subtarget features (used when targets automatically detect subtarget features or switch modes). - Teach X86Subtarget to update MCSubtargetInfo features bits since the MCSubtargetInfo layer can be shared with other modules. - These fixes .code 16 / .code 32 support since mode switch is updated in MCSubtargetInfo so MC code emitter can do the right thing. llvm-svn: 134884
-
- Jul 08, 2011
-
-
Evan Cheng authored
- Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". llvm-svn: 134678
-
- Jul 06, 2011
-
-
Evan Cheng authored
llvm-svn: 134525
-
Dan Gohman authored
extension points to be used by clang. llvm-svn: 134444
-
- Jul 04, 2011
-
-
Rafael Espindola authored
This fixes the issue noted in PR10251 where early tail dup of bbs with indirectbr would cause a bb to be duplicated into a loop preheader and then into its predecessors, creating phi nodes with identical operands just before register allocation. This helps with jsinterp.o size (__TEXT goes from 163568 to 126656) and a bit with performance 1.005x faster on sunspider (jits still enabled). The result on webkit with the jit disabled is more significant: 1.021x faster. llvm-svn: 134372
-
- Jun 17, 2011
-
-
Bill Wendling authored
llvm-svn: 133292
-
Bill Wendling authored
The LSDA is a bit difficult for the non-initiated to read. Even with comments, it's not always clear what's going on. This wraps the ASM streamer in a class that retains the LSDA and then emits a human-readable description of what's going on in it. So instead of having to make sense of: Lexception1: .byte 255 .byte 155 .byte 168 .space 1 .byte 3 .byte 26 Lset0 = Ltmp7-Leh_func_begin1 .long Lset0 Lset1 = Ltmp812-Ltmp7 .long Lset1 Lset2 = Ltmp913-Leh_func_begin1 .long Lset2 .byte 3 Lset3 = Ltmp812-Leh_func_begin1 .long Lset3 Lset4 = Leh_func_end1-Ltmp812 .long Lset4 .long 0 .byte 0 .byte 1 .byte 0 .byte 2 .byte 125 .long __ZTIi@GOTPCREL+4 .long __ZTIPKc@GOTPCREL+4 you can read this instead: ## Exception Handling Table: Lexception1 ## @LPStart Encoding: omit ## @TType Encoding: indirect pcrel sdata4 ## @TType Base: 40 bytes ## @CallSite Encoding: udata4 ## @Action Table Size: 26 bytes ## Action 1: ## A throw between Ltmp7 and Ltmp812 jumps to Ltmp913 on an exception. ## For type(s): __ZTIi@GOTPCREL+4 __ZTIPKc@GOTPCREL+4 ## Action 2: ## A throw between Ltmp812 and Leh_func_end1 does not have a landing pad. llvm-svn: 133286
-
- Jun 16, 2011
-
-
John McCall authored
llvm-svn: 133108
-
- May 28, 2011
-
-
Charles Davis authored
the Win64 EH mechanism to implement GCC-style exceptions. LLVM supports hardly anything else at this point! llvm-svn: 132234
-
- May 22, 2011
-
-
Chris Lattner authored
should eventually convert to PMBuilder, but I don't plan to do this. llvm-svn: 131819
-
- May 06, 2011
-
-
Rafael Espindola authored
llvm-svn: 130959
-
- Apr 30, 2011
-
-
Rafael Espindola authored
the final assembly. It is the same technique used when targeting assemblers that don't support .loc. llvm-svn: 130587
-
- Mar 29, 2011
-
-
Daniel Dunbar authored
integrated-as. llvm-svn: 128431
-
- Mar 21, 2011
-
-
Bill Wendling authored
the alias of an InstAlias instead of the thing being aliased. Because we need to know the features that are valid for an InstAlias. This is part of a work-in-progress. llvm-svn: 127986
-
- Mar 18, 2011
-
-
Jim Grosbach authored
Proof-of-concept code that code-gens a module to an in-memory MachO object. This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld for similarly conceptual work for that part) which will take the compiled object and link it together with the rest of the system, providing back to the JIT a table of available symbols which will be used to respond to the getPointerTo*() queries. llvm-svn: 127916
-
- Mar 05, 2011
-
-
Anton Korobeynikov authored
llvm-svn: 127099
-
- Feb 28, 2011
-
-
Dan Gohman authored
llvm-svn: 126671
-
- Jan 23, 2011
-
-
Rafael Espindola authored
llvm-svn: 124077
-
- Jan 14, 2011
-
-
Anton Korobeynikov authored
Add a possibility to switch between CFI directives- and table-based frame description emission. Currently all the backends use table-based stuff. llvm-svn: 123476
-
- Dec 18, 2010
-
-
Jakob Stoklund Olesen authored
createMachineVerifierPass and MachineFunction::verify. The banner is printed before the machine code dump, just like the printer pass. llvm-svn: 122113
-
- Dec 16, 2010
-
-
Daniel Dunbar authored
- Treaty talks on the non-proliferation of MC objects broke down. llvm-svn: 121949
-
- Dec 10, 2010
-
-
Rafael Espindola authored
llvm-svn: 121471
-
Rafael Espindola authored
llvm-svn: 121461
-
Rafael Espindola authored
f: .cfi_startproc nop .cfi_endproc assembled (on ELF). llvm-svn: 121434
-
- Nov 19, 2010
-
-
Rafael Espindola authored
MCStreamer instead of just MCObjectStreamer. Address changes cannot be as efficient as we have to use DW_LNE_set_addres, but at least most of the logic is shared. This will be used so that, with CodeGen still using EmitDwarfLocDirective, llvm-gcc is able to produce debug_line sections without needing an assembler that supports .loc. llvm-svn: 119777
-
- Nov 18, 2010
-
-
Dan Gohman authored
llvm-svn: 119717
-
- Nov 17, 2010
-
-
Evan Cheng authored
and xor. The 32-bit move immediates can be hoisted out of loops by machine LICM but the isel hacks were preventing them. Instead, let peephole optimization pass recognize registers that are defined by immediates and the ARM target hook will fold the immediates in. Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ instructions if there are multiple uses. This happens when the 'and' is live out, machine sink would have sinked the computation and that ends up pessimizing code. The peephole pass would recognize situations where the 'and' can be toggled to define CPSR and eliminate the comparison anyway. 2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking important optimizations. rdar://8663787, rdar://8241368 llvm-svn: 119548
-