Commit Graph

30594 Commits

Author SHA1 Message Date
Daniel Dunbar a4fc8d94ce llvm-mc: A few more parsing / match tweaks.
- Operands which are just a label should be parsed as immediates, not memory
   operands (from the assembler perspective).

 - Match a few more flavors of immediates.

 - Distinguish match functions for memory operands which don't take a segment
   register.

 - We match the .s for "hello world" now!

llvm-svn: 77745
2009-07-31 22:22:54 +00:00
Evan Cheng 95d6325859 t2BR_JT is mov pc, it's 2 byte long, not 4.
llvm-svn: 77744
2009-07-31 22:22:22 +00:00
Evan Cheng 9eb3f88048 Thumb2 movcc need .w suffix.
llvm-svn: 77743
2009-07-31 22:21:55 +00:00
Chris Lattner f4b92a8a00 add some comments on how this is *supposed* to work. We don't
need the PreferredEHDataFormat hook, but I have yet-more refactoring to
do before I can zap it.

llvm-svn: 77742
2009-07-31 22:18:14 +00:00
Chris Lattner 47fc2351c0 rearrange a conditional. Even if this weren't #if 0'd out, this would
have no functionality change.

llvm-svn: 77741
2009-07-31 22:03:47 +00:00
David Greene 81bcae5fda Simplify operand padding by keying off tabs in the asm stream. If
padding is disabled, tabs get replaced by spaces except in the case of
the first operand, where the tab is output to line up the operands after
the mnemonics.

Add some better comments and eliminate redundant code.

Fix some testcases to not assume tabs.

llvm-svn: 77740
2009-07-31 21:57:10 +00:00
Chris Lattner 63779b8d57 PreferredEHDataFormat is always call with data and global, but this whole
thing is #if0'd out anyway.  Just simplify the code by reducing the interface.
Not deleting this is essential for Bill's continuing happiness.

llvm-svn: 77736
2009-07-31 21:39:55 +00:00
Owen Anderson 0087fe6e5c Move the metadata constructors back to 2.5 syntax.
llvm-svn: 77733
2009-07-31 21:35:40 +00:00
Dan Gohman e8c035df6f LibCallAliasAnalysis doesn't use TargetData.
llvm-svn: 77729
2009-07-31 20:56:29 +00:00
Daniel Dunbar 3ebf848b47 llvm-mc/X86: Sketch match functions for immediates and memory operands.
Also, change scale value to always be 1 when unspecified to machine MachineInst
encoding.

llvm-svn: 77728
2009-07-31 20:53:16 +00:00
Dan Gohman 1ee6057b21 Make TargetData optional in MemoryDependenceAnalysis.
llvm-svn: 77727
2009-07-31 20:53:12 +00:00
Chris Lattner d25701c114 move emitUsedDirectiveFor to TargetLoweringObjectFile and rename it to
indicate that it is a predicate, not an emitter.  This eliminates TAI
dependencies on Mangler and GlobalValue.

llvm-svn: 77726
2009-07-31 20:52:39 +00:00
Dan Gohman f3ee7eaac3 Remove an unnecessary header.
llvm-svn: 77725
2009-07-31 20:47:45 +00:00
Chris Lattner 740749b470 remove the PPCLinuxTargetAsmInfo implementation of PreferredEHDataFormat,
because it just calls the default impl.

Remove the PPCDarwinTargetAsmInfo version of PreferredEHDataFormat because
it just returns DW_EH_PE_absptr unless on 10.6.  However, 10.6 doesn't support
PPC, so the default impl is just fine.

llvm-svn: 77724
2009-07-31 20:43:26 +00:00
Chris Lattner 5ebf64e075 remove a pointless override.
llvm-svn: 77723
2009-07-31 20:36:15 +00:00
Owen Anderson 5a1acd9912 Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are
metadata related, which I'm waiting on to avoid conflicting with Devang.

llvm-svn: 77721
2009-07-31 20:28:14 +00:00
Dan Gohman ef3ef7f645 Fix GVN's debug output, now that operator<< on Value* doesn't print
a trailing newline.

llvm-svn: 77719
2009-07-31 20:24:18 +00:00
Eric Christopher 45d7185117 Whitespace and 80-col cleanup.
llvm-svn: 77718
2009-07-31 20:07:27 +00:00
Bill Wendling 2602bb4cdc - Convert the rest of the DOUTs to DEBUG+errs().
- One formatting change.

No intended functionality change.

llvm-svn: 77717
2009-07-31 19:52:24 +00:00
Eli Friedman ca9a4f1045 PR4662: Fix a crash introduced by the recent LLVMContext changes.
llvm-svn: 77716
2009-07-31 19:36:47 +00:00
Ted Kremenek defdbdc5ca Update CMake files.
llvm-svn: 77709
2009-07-31 18:50:22 +00:00
Chris Lattner 4d2c0f9008 switch off of 'Section' onto MCSection. We're not properly using
MCSection subclasses yet, but this is a step in the right direction.

llvm-svn: 77708
2009-07-31 18:48:30 +00:00
Dan Gohman 060ca138e2 Remove Annotation.h, which is no longer used in the LLVM tree.
llvm-svn: 77706
2009-07-31 18:36:25 +00:00
Evan Cheng be8422e8e0 Until we have a "ALIGN" pseudo instruction, have asm printer emitted a .align
to ensure the instruction that follows a TBB (when the number of table entries
is odd) is 2-byte aligned.
Patch by Sandeep Patel.

llvm-svn: 77705
2009-07-31 18:35:56 +00:00
Dan Gohman 7baae4b355 MachineFunction no longer needs Annotation.
llvm-svn: 77704
2009-07-31 18:35:51 +00:00
Evan Cheng f6d0fa3d33 - Teach TBB / TBH offset limits are 510 and 131070 respectively since the offset
is scaled by two.
- Teach GetInstSizeInBytes about TBB and TBH.

llvm-svn: 77701
2009-07-31 18:28:05 +00:00
Dan Gohman b53e26c7eb Fix printing of Alloca instructions with null operands.
llvm-svn: 77697
2009-07-31 18:23:24 +00:00
Dan Gohman dc2b1b0a1c Fix some problems with ASTCallbackVH in its use as a DenseMap key.
llvm-svn: 77696
2009-07-31 18:21:48 +00:00
Devang Patel 9d7de2a155 Process DbgDeclareInst.
llvm-svn: 77694
2009-07-31 18:18:52 +00:00
Daniel Dunbar ca8135379e Normalize target registration code.
llvm-svn: 77692
2009-07-31 18:16:53 +00:00
Dan Gohman 5ea74d55ce Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage
shouldn't do AU.setPreservesCFG(), because even though CodeGen passes
don't modify the LLVM IR CFG, they may modify the MachineFunction CFG,
and passes like MachineLoop are registered with isCFGOnly set to true.

llvm-svn: 77691
2009-07-31 18:16:33 +00:00
Chris Lattner 51d5b43cda refactor section construction in TLOF to be through an explicit
initialize method, which can be called when an MCContext is available.

llvm-svn: 77687
2009-07-31 17:42:42 +00:00
Owen Anderson 23a204d91b Move getTrue() and getFalse() to 2.5-like APIs.
llvm-svn: 77685
2009-07-31 17:39:07 +00:00
Chris Lattner c10132aa79 split MCSection stuff out to its own .cpp file, add a new
MCSectionWithKind subclass of MCSection.

llvm-svn: 77684
2009-07-31 17:02:00 +00:00
Chris Lattner b37f29b6f3 create sections with MCSection::Create instead of Context->getOrCreateSection.
This is needed to allow polymorphic sections.

llvm-svn: 77680
2009-07-31 16:43:49 +00:00
Chris Lattner fc0264a38e fix PR4650: we only track sizes for certain objects, so only put something
into the mergable section if it is one of our special cases.  This could
obviously be improved, but this is the minimal fix and restores us to the
previous behavior.

llvm-svn: 77679
2009-07-31 16:17:13 +00:00
Benjamin Kramer 7e7617edf8 Work around a dangling pointer dereference when enumerating NamedMDNodes.
llvm-svn: 77675
2009-07-31 14:22:13 +00:00
Benjamin Kramer b60210ebab Fix a struct/class mismatch, to silence a MSVC warning.
llvm-svn: 77673
2009-07-31 11:35:26 +00:00
Sanjiv Gupta 7de154708a define target names for std libcalls.
llvm-svn: 77667
2009-07-31 07:35:57 +00:00
Daniel Dunbar 5434756585 Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many
failures when building assorted projects with clang.

--- Reverse-merging r77654 into '.':
U    include/llvm/CodeGen/Passes.h
U    include/llvm/CodeGen/MachineFunctionPass.h
U    include/llvm/CodeGen/MachineFunction.h
U    include/llvm/CodeGen/LazyLiveness.h
U    include/llvm/CodeGen/SelectionDAGISel.h
D    include/llvm/CodeGen/MachineFunctionAnalysis.h
U    include/llvm/Function.h
U    lib/Target/CellSPU/SPUISelDAGToDAG.cpp
U    lib/Target/PowerPC/PPCISelDAGToDAG.cpp
U    lib/CodeGen/LLVMTargetMachine.cpp
U    lib/CodeGen/MachineVerifier.cpp
U    lib/CodeGen/MachineFunction.cpp
U    lib/CodeGen/PrologEpilogInserter.cpp
U    lib/CodeGen/MachineLoopInfo.cpp
U    lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
D    lib/CodeGen/MachineFunctionAnalysis.cpp
D    lib/CodeGen/MachineFunctionPass.cpp
U    lib/CodeGen/LiveVariables.cpp

llvm-svn: 77661
2009-07-31 03:02:41 +00:00
Daniel Dunbar b6d6aa2d22 llvm-mc: Match a few X86 instructions.
- This is "experimental" code, I am feeling my way around and working out the
   best way to do things (and learning tblgen in the process). Comments welcome,
   but keep in mind this stuff will change radically.

 - This is enough to match "subb" and friends, but not much else. The next step is to
   automatically generate the matchers for individual operands.

llvm-svn: 77657
2009-07-31 02:32:59 +00:00
Dan Gohman bcb44baa57 Manage MachineFunctions with an analysis Pass instead of the Annotable
mechanism. To support this, make MachineFunctionPass a little more
complete.

llvm-svn: 77654
2009-07-31 01:52:50 +00:00
Benjamin Kramer 218388fb8d Fix cmake build.
llvm-svn: 77649
2009-07-31 00:35:23 +00:00
Devang Patel 98250795e8 Add getOrInsertNamedMetadata().
llvm-svn: 77646
2009-07-30 23:59:04 +00:00
Evan Cheng 5811ab5cf3 When fp is not eliminated, instructions with T2_i12 modes will be changed to T2_i8 ones. Take that into consideration when determining stack size limit for reserving register scavenging slot.
llvm-svn: 77642
2009-07-30 23:29:25 +00:00
Lang Hames 16f58557d2 Removed the BigBlock register allocator.
llvm-svn: 77640
2009-07-30 23:18:43 +00:00
Devang Patel 16e5124a82 Do not use abbrev while writing NamedMDNode name.
llvm-svn: 77637
2009-07-30 23:06:35 +00:00
Devang Patel d14bacfb7a Enumerate NamedMDNode elements first.
llvm-svn: 77636
2009-07-30 23:03:43 +00:00
Owen Anderson b292b8ce70 Move more code back to 2.5 APIs.
llvm-svn: 77635
2009-07-30 23:03:37 +00:00
David Goodwin 5aae45fb6f Remove redundant match for frame index from imm8 addrmode, it is handled by the imm12 addrmode.
llvm-svn: 77632
2009-07-30 22:45:52 +00:00