oota-llvm.git
14 years agoModified VNInfo. The "copy" member is now a union which holds the copy for a register...
Lang Hames [Mon, 10 Aug 2009 23:43:28 +0000 (23:43 +0000)]
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78620 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a bug in the DAGCombiner's handling of multiple linked
Dan Gohman [Mon, 10 Aug 2009 23:43:19 +0000 (23:43 +0000)]
Fix a bug in the DAGCombiner's handling of multiple linked
MERGE_VALUES nodes. Replacing the result values with the
operands in one MERGE_VALUES node may cause another
MERGE_VALUES node be CSE'd with the first one, and bring
its uses along, so that the first one isn't dead, as this
code expects. Fix this by iterating until the node is
really dead. This fixes PR4699.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78619 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a bug where DAGCombine was producing an illegal ConstantFP
Dan Gohman [Mon, 10 Aug 2009 23:15:10 +0000 (23:15 +0000)]
Fix a bug where DAGCombine was producing an illegal ConstantFP
node after legalize, and remove the workaround code from the
ARM backend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78615 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse FileCheck.
David Goodwin [Mon, 10 Aug 2009 23:14:14 +0000 (23:14 +0000)]
Use FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78614 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse FileCheck... its good for you...
David Goodwin [Mon, 10 Aug 2009 23:06:57 +0000 (23:06 +0000)]
Use FileCheck... its good for you...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78613 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove MDNode from ValueMap when MDNode is destroyed.
Devang Patel [Mon, 10 Aug 2009 22:59:46 +0000 (22:59 +0000)]
Remove MDNode from ValueMap when MDNode is destroyed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78612 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix test.
David Goodwin [Mon, 10 Aug 2009 22:58:08 +0000 (22:58 +0000)]
Fix test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78611 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRename MVT to EVT, in preparation for splitting SimpleValueType out into its own...
Owen Anderson [Mon, 10 Aug 2009 22:56:29 +0000 (22:56 +0000)]
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhitespace, 80-column, and isTwoAddress -> Constraints = "" changes.
Eric Christopher [Mon, 10 Aug 2009 22:37:37 +0000 (22:37 +0000)]
Whitespace, 80-column, and isTwoAddress -> Constraints = "" changes.
No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78608 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRename MDNodeSet as MDNodes.
Devang Patel [Mon, 10 Aug 2009 22:31:31 +0000 (22:31 +0000)]
Rename MDNodeSet as MDNodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78607 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix test.
David Goodwin [Mon, 10 Aug 2009 22:31:04 +0000 (22:31 +0000)]
Fix test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78606 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAlign comments.
Devang Patel [Mon, 10 Aug 2009 22:20:38 +0000 (22:20 +0000)]
Align comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78605 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse NEON for single-precision int<->FP conversions.
David Goodwin [Mon, 10 Aug 2009 22:17:39 +0000 (22:17 +0000)]
Use NEON for single-precision int<->FP conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78604 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDo not rely on magic "llvm.dbg.*" global variable name to find debug info.
Devang Patel [Mon, 10 Aug 2009 22:11:20 +0000 (22:11 +0000)]
Do not rely on magic "llvm.dbg.*" global variable name to find debug info.
PIC16 developers, please verify.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78603 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoKeep track of DIType.
Devang Patel [Mon, 10 Aug 2009 22:09:58 +0000 (22:09 +0000)]
Keep track of DIType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78602 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove a bunch of debugging code that was slowing PBQP down by 25% or so.
Owen Anderson [Mon, 10 Aug 2009 21:49:45 +0000 (21:49 +0000)]
Remove a bunch of debugging code that was slowing PBQP down by 25% or so.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78601 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix up whitespace, remove commented out code.
Eric Christopher [Mon, 10 Aug 2009 21:48:58 +0000 (21:48 +0000)]
Fix up whitespace, remove commented out code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78600 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Disambiguate i64i8imm.
Daniel Dunbar [Mon, 10 Aug 2009 21:06:41 +0000 (21:06 +0000)]
llvm-mc/AsmParser: Disambiguate i64i8imm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78598 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Allow .td users to redefine the names of the methods to call
Daniel Dunbar [Mon, 10 Aug 2009 21:00:45 +0000 (21:00 +0000)]
llvm-mc/AsmParser: Allow .td users to redefine the names of the methods to call
on target specific operands for testing class membership and converting to
MCInst operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78597 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRename ConvertType to ConvertConstant to avoid a name conflict on llvm-gcc.
Daniel Dunbar [Mon, 10 Aug 2009 20:56:46 +0000 (20:56 +0000)]
Rename ConvertType to ConvertConstant to avoid a name conflict on llvm-gcc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78596 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSimpleValueType-ify a few more methods on TargetLowering.
Owen Anderson [Mon, 10 Aug 2009 20:46:15 +0000 (20:46 +0000)]
SimpleValueType-ify a few more methods on TargetLowering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78595 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoHandle the constantfp created during post-legalization dag combiner phase.
Evan Cheng [Mon, 10 Aug 2009 20:25:59 +0000 (20:25 +0000)]
Handle the constantfp created during post-legalization dag combiner phase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78594 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoContinue the SimpleValueType-ification.
Owen Anderson [Mon, 10 Aug 2009 20:18:46 +0000 (20:18 +0000)]
Continue the SimpleValueType-ification.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78593 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix ocaml "make check" tests, that wasn't finding the proper c++ compiler.
Erick Tryzelaar [Mon, 10 Aug 2009 19:45:05 +0000 (19:45 +0000)]
Fix ocaml "make check" tests, that wasn't finding the proper c++ compiler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78592 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix comment in llvm.mli.
Erick Tryzelaar [Mon, 10 Aug 2009 19:45:00 +0000 (19:45 +0000)]
Fix comment in llvm.mli.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78591 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoConvert comments to C90-style so llvm-c can import DataTypes.h.
Erick Tryzelaar [Mon, 10 Aug 2009 19:44:53 +0000 (19:44 +0000)]
Convert comments to C90-style so llvm-c can import DataTypes.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78590 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix docstring for ocaml binding's const_float.
Erick Tryzelaar [Mon, 10 Aug 2009 19:44:45 +0000 (19:44 +0000)]
Fix docstring for ocaml binding's const_float.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78589 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmMatcher: Remove some code which has been obsoleted by move to
Daniel Dunbar [Mon, 10 Aug 2009 19:08:50 +0000 (19:08 +0000)]
llvm-mc/AsmMatcher: Remove some code which has been obsoleted by move to
explicit parser match classes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78588 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmMatcher: Fix thinko, Mem isn't a subclass of Imm.
Daniel Dunbar [Mon, 10 Aug 2009 19:08:02 +0000 (19:08 +0000)]
llvm-mc/AsmMatcher: Fix thinko, Mem isn't a subclass of Imm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78587 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWe are not using FoldingSet for metadata uniquing anymore.
Devang Patel [Mon, 10 Aug 2009 18:59:07 +0000 (18:59 +0000)]
We are not using FoldingSet for metadata uniquing anymore.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78585 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoStart moving TargetLowering away from using full MVTs and towards SimpleValueType...
Owen Anderson [Mon, 10 Aug 2009 18:56:59 +0000 (18:56 +0000)]
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78584 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmMatcher: Change assembler parser match classes to their own record
Daniel Dunbar [Mon, 10 Aug 2009 18:41:10 +0000 (18:41 +0000)]
llvm-mc/AsmMatcher: Change assembler parser match classes to their own record
structure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78581 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agog++ 4.0 doesn't have std::vector::data.
Benjamin Kramer [Mon, 10 Aug 2009 18:27:33 +0000 (18:27 +0000)]
g++ 4.0 doesn't have std::vector::data.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78579 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoChange the MDNode uniquing to a ValueMap, at Devang's request.
Owen Anderson [Mon, 10 Aug 2009 18:16:08 +0000 (18:16 +0000)]
Change the MDNode uniquing to a ValueMap, at Devang's request.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78577 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosplit MachO section handling stuff out to its out .h/.cpp file.
Chris Lattner [Mon, 10 Aug 2009 18:15:01 +0000 (18:15 +0000)]
split MachO section handling stuff out to its out .h/.cpp file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78576 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd a fixme
Chris Lattner [Mon, 10 Aug 2009 18:05:55 +0000 (18:05 +0000)]
add a fixme

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78575 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoarm only needs to emit one .align directive for hidden nlp's, not one
Chris Lattner [Mon, 10 Aug 2009 18:02:16 +0000 (18:02 +0000)]
arm only needs to emit one .align directive for hidden nlp's, not one
per pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78574 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomake sure that arm nonlazypointers are aligned properly
Chris Lattner [Mon, 10 Aug 2009 18:01:34 +0000 (18:01 +0000)]
make sure that arm nonlazypointers are aligned properly

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78573 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a weird ppc64-specific link error during an llvm-gcc build:
Chris Lattner [Mon, 10 Aug 2009 17:58:51 +0000 (17:58 +0000)]
Fix a weird ppc64-specific link error during an llvm-gcc build:
ld: bad offset (0x00000091) for lo14 instruction pic-base fix-up in ___popcountdi2 from libgcc/./_popcountsi2_s.o

The problem is that the non lazy symbol pointers need to be 8 byte aligned
on ppc64 and .section doesn't have an implicit alignment like ".non_lazy_symbol_pointer"
does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78572 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix some warnings for the MSVC build, by Yonggang Luo!
Chris Lattner [Mon, 10 Aug 2009 17:35:42 +0000 (17:35 +0000)]
fix some warnings for the MSVC build, by Yonggang Luo!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78571 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake this comment more closely reflect the code.
Dan Gohman [Mon, 10 Aug 2009 16:50:32 +0000 (16:50 +0000)]
Make this comment more closely reflect the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78569 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd nounwind keywords.
Dan Gohman [Mon, 10 Aug 2009 16:48:40 +0000 (16:48 +0000)]
Add nounwind keywords.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78568 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support for printing loop structure information in asm comments.
David Greene [Mon, 10 Aug 2009 16:38:07 +0000 (16:38 +0000)]
Add support for printing loop structure information in asm comments.
This definitely slows down asm output so put it under an -asm-exuberant
flag.

This information is useful when doing static analysis of performance
issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78567 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoClarify limitations of a ModulePass requiring a FunctionPass.
Devang Patel [Mon, 10 Aug 2009 16:37:29 +0000 (16:37 +0000)]
Clarify limitations of a ModulePass requiring a FunctionPass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78566 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Check for matches with super classes when matching
Daniel Dunbar [Mon, 10 Aug 2009 16:05:47 +0000 (16:05 +0000)]
llvm-mc/AsmParser: Check for matches with super classes when matching
instruction operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78565 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCheckpoint scheduling itinerary changes.
David Goodwin [Mon, 10 Aug 2009 15:56:13 +0000 (15:56 +0000)]
Checkpoint scheduling itinerary changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78564 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPost RA scheduler changes. Introduce a hazard recognizer that uses the target schedul...
David Goodwin [Mon, 10 Aug 2009 15:55:25 +0000 (15:55 +0000)]
Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78563 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWatch out for empty BB.
Evan Cheng [Mon, 10 Aug 2009 08:10:13 +0000 (08:10 +0000)]
Watch out for empty BB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78562 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorev, rev16, and revsh do not set CPSR.
Evan Cheng [Mon, 10 Aug 2009 07:58:45 +0000 (07:58 +0000)]
rev, rev16, and revsh do not set CPSR.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78561 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDuh. Most 16-bit Thumb rr instructions are two-address. Fix table.
Evan Cheng [Mon, 10 Aug 2009 07:20:37 +0000 (07:20 +0000)]
Duh. Most 16-bit Thumb rr instructions are two-address. Fix table.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78560 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCPSR can be livein; transfer predicate operands correctly; tMUL is two-address.
Evan Cheng [Mon, 10 Aug 2009 06:57:42 +0000 (06:57 +0000)]
CPSR can be livein; transfer predicate operands correctly; tMUL is two-address.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78559 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support for folding loads / stores into 16-bit moves used by Thumb2.
Evan Cheng [Mon, 10 Aug 2009 06:32:05 +0000 (06:32 +0000)]
Add support for folding loads / stores into 16-bit moves used by Thumb2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78558 91177308-0d34-0410-b5e6-96231b3b80d8

14 years ago80 col violation.
Evan Cheng [Mon, 10 Aug 2009 05:51:48 +0000 (05:51 +0000)]
80 col violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78557 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse tMOVgpr2gpr instead of t2MOVr.
Evan Cheng [Mon, 10 Aug 2009 05:49:43 +0000 (05:49 +0000)]
Use tMOVgpr2gpr instead of t2MOVr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78556 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support for a user supplied pointer argument to llvm_install_error_handler.
Daniel Dunbar [Mon, 10 Aug 2009 03:36:26 +0000 (03:36 +0000)]
Add support for a user supplied pointer argument to llvm_install_error_handler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78553 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMove ConstantExpr handling to ResolveConstantExpr method and also
Bruno Cardoso Lopes [Mon, 10 Aug 2009 03:32:40 +0000 (03:32 +0000)]
Move ConstantExpr handling to ResolveConstantExpr method and also
add support for PtrToInt, Add, Mul.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78552 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support to reduce most of 32-bit Thumb2 arithmetic instructions.
Evan Cheng [Mon, 10 Aug 2009 02:37:24 +0000 (02:37 +0000)]
Add support to reduce most of 32-bit Thumb2 arithmetic instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78550 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAlways use the 16-bit tMOVgpr2gpr instead of the 32-bit t2MOVr.
Evan Cheng [Mon, 10 Aug 2009 02:06:53 +0000 (02:06 +0000)]
Always use the 16-bit tMOVgpr2gpr instead of the 32-bit t2MOVr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78549 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake the big switch: Change MCSectionMachO to represent a section *semantically*
Chris Lattner [Mon, 10 Aug 2009 01:39:42 +0000 (01:39 +0000)]
Make the big switch: Change MCSectionMachO to represent a section *semantically*
instead of syntactically as a string.  This means that it keeps track of the
segment, section, flags, etc directly and asmprints them in the right format.
This also includes parsing and validation support for llvm-mc and
"attribute(section)", so we should now start getting errors about invalid
section attributes from the compiler instead of the assembler on darwin.

Still todo:
1) Uniquing of darwin mcsections
2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h]
3) there are a few FIXMEs, for example what is the syntax to get the
   S_GB_ZEROFILL segment type?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78547 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd a simple back() method to StringRef.
Chris Lattner [Mon, 10 Aug 2009 00:44:02 +0000 (00:44 +0000)]
add a simple back() method to StringRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78544 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse abs64 instead abs; some platforms don't have a 64-bit abs overload. Noticed by...
Benjamin Kramer [Sun, 9 Aug 2009 22:37:07 +0000 (22:37 +0000)]
Use abs64 instead abs; some platforms don't have a 64-bit abs overload. Noticed by Yonggang Luo!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78543 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support to convert 32-bit instructions to 16-bit non-two-address ones.
Evan Cheng [Sun, 9 Aug 2009 19:17:19 +0000 (19:17 +0000)]
Add support to convert 32-bit instructions to 16-bit non-two-address ones.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78540 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoalways end a section with \n on elf.
Chris Lattner [Sun, 9 Aug 2009 15:31:10 +0000 (15:31 +0000)]
always end a section with \n on elf.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78534 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Fix thinko in ClassInfo::operator<.
Daniel Dunbar [Sun, 9 Aug 2009 08:23:23 +0000 (08:23 +0000)]
llvm-mc/AsmParser: Fix thinko in ClassInfo::operator<.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78533 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Add hack to ignore Int_* and *_Int instructions for now, to
Daniel Dunbar [Sun, 9 Aug 2009 08:19:00 +0000 (08:19 +0000)]
llvm-mc/AsmParser: Add hack to ignore Int_* and *_Int instructions for now, to
make it easier to see interesting ambiguities.
 - Also, check that user doesn't try to redefine the super class. This is a wart
   in the current design, in that assembler match classes aren't explicitly
   declared somewhere (so there isn't a unique place to declare the super
   class). This should probably be fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78532 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDisable this test for now, we don't check for super classes when matching yet.
Daniel Dunbar [Sun, 9 Aug 2009 07:35:56 +0000 (07:35 +0000)]
Disable this test for now, we don't check for super classes when matching yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78531 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Implement user defined super classes.
Daniel Dunbar [Sun, 9 Aug 2009 07:20:21 +0000 (07:20 +0000)]
llvm-mc/AsmParser: Implement user defined super classes.
 - We can now discriminate SUB32ri8 from SUB32ri, for example.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78530 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd tests for Neon VZIP and VUZP instructions.
Bob Wilson [Sun, 9 Aug 2009 06:48:29 +0000 (06:48 +0000)]
Add tests for Neon VZIP and VUZP instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78529 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a test for Neon VTRN instructions.
Bob Wilson [Sun, 9 Aug 2009 06:30:46 +0000 (06:30 +0000)]
Add a test for Neon VTRN instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78528 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Separate instruction ordering for ambiguity detection.
Daniel Dunbar [Sun, 9 Aug 2009 06:05:33 +0000 (06:05 +0000)]
llvm-mc/AsmParser: Separate instruction ordering for ambiguity detection.
 - We want the ordering operation to be simple, since we run it on every
   match. The old ordering is also not a strict weak ordering when there are
   ambiguities, which makes MSVC unhappy.

 - While we are at it, detect all ambiguities instead of just the adjacent
   ones. There are actually 655, for X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78526 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoChange Neon table lookup (VTBL) and table extension (VTBX) intrinsics to
Bob Wilson [Sun, 9 Aug 2009 06:03:09 +0000 (06:03 +0000)]
Change Neon table lookup (VTBL) and table extension (VTBX) intrinsics to
take the table vectors as separate arguments, instead of the previous
approach where they were combined into one big vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78525 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoExtend comment on ParserMatchClass .td field, and add some missing
Daniel Dunbar [Sun, 9 Aug 2009 06:00:04 +0000 (06:00 +0000)]
Extend comment on ParserMatchClass .td field, and add some missing
classes for X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78524 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Define match classes in the .td file.
Daniel Dunbar [Sun, 9 Aug 2009 05:18:30 +0000 (05:18 +0000)]
llvm-mc/AsmParser: Define match classes in the .td file.
 -2 FIXMEs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78523 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmParser: Sketch infrastructure for ordering instructions & detecting
Daniel Dunbar [Sun, 9 Aug 2009 04:00:06 +0000 (04:00 +0000)]
llvm-mc/AsmParser: Sketch infrastructure for ordering instructions & detecting
ambiguities.
 - Currently there are 483 ambiguities to resolve. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78522 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSTLExtras: Add less_ptr.
Daniel Dunbar [Sun, 9 Aug 2009 03:36:59 +0000 (03:36 +0000)]
STLExtras: Add less_ptr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78521 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix edito
Chris Lattner [Sat, 8 Aug 2009 23:43:55 +0000 (23:43 +0000)]
fix edito

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78520 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmMatcher: Tweak string matcher (missed a newline).
Daniel Dunbar [Sat, 8 Aug 2009 23:43:16 +0000 (23:43 +0000)]
llvm-mc/AsmMatcher: Tweak string matcher (missed a newline).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78518 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosink the 'name' and 'isdirective' state out of MCSection into its derived classes.
Chris Lattner [Sat, 8 Aug 2009 23:39:42 +0000 (23:39 +0000)]
sink the 'name' and 'isdirective' state out of MCSection into its derived classes.
This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78517 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse subclassing to print lane-like immediates (w/o hash) eliminating
Anton Korobeynikov [Sat, 8 Aug 2009 23:10:41 +0000 (23:10 +0000)]
Use subclassing to print lane-like immediates (w/o hash) eliminating
'no_hash' modifier. Hopefully this will make Daniel happy :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78514 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmMatcher: Tweak string matcher.
Daniel Dunbar [Sat, 8 Aug 2009 22:57:25 +0000 (22:57 +0000)]
llvm-mc/AsmMatcher: Tweak string matcher.
 - Track whether we need to insert an explicit 'break'.

 - Invert conditional when matching a single prefix to reduce
   nesting/bracing/breaking.

 - wc -l of X86GenAsmMatcher.inc decreased by 10%. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78513 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoremove nondeterminstic test.
Chris Lattner [Sat, 8 Aug 2009 22:56:37 +0000 (22:56 +0000)]
remove nondeterminstic test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78512 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd a note about dead zero extends.
Chris Lattner [Sat, 8 Aug 2009 22:46:59 +0000 (22:46 +0000)]
add a note about dead zero extends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78511 91177308-0d34-0410-b5e6-96231b3b80d8

14 years ago1. Make MCSection an abstract class.
Chris Lattner [Sat, 8 Aug 2009 22:41:53 +0000 (22:41 +0000)]
1. Make MCSection an abstract class.
2. Move section switch printing to MCSection virtual method which takes a
   TAI.  This eliminates textual formatting stuff from TLOF.
3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and
   TLOFELF::AtIsCommentChar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78510 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoswitch this to create coff sections for now, it doesn't really matter for
Chris Lattner [Sat, 8 Aug 2009 22:38:48 +0000 (22:38 +0000)]
switch this to create coff sections for now, it doesn't really matter for
llvm-mc's purpose yet and we'll want to switch to creating semantic sections
at some point.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78509 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd crc32 instruction and intrinsics. Add a new class of prefix
Eric Christopher [Sat, 8 Aug 2009 21:55:08 +0000 (21:55 +0000)]
Add crc32 instruction and intrinsics. Add a new class of prefix
bytes for F2 0F 38 and propagate. Add a FIXME for a set
of possibilities which correspond to intrinsics already used.

New test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78508 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd support for READCYCLECOUNTER in Blackfin back-end.
Jakob Stoklund Olesen [Sat, 8 Aug 2009 21:42:22 +0000 (21:42 +0000)]
Add support for READCYCLECOUNTER in Blackfin back-end.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78506 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd new PIC16Section class, this time hopefully not breaking the build :)
Chris Lattner [Sat, 8 Aug 2009 21:37:01 +0000 (21:37 +0000)]
add new PIC16Section class, this time hopefully not breaking the build :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78505 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvm-mc/AsmMatcher: Switch token matching to use the new string matcher.
Daniel Dunbar [Sat, 8 Aug 2009 21:22:41 +0000 (21:22 +0000)]
llvm-mc/AsmMatcher: Switch token matching to use the new string matcher.

Also, redefined MatchRegisterName to just return the register value or a
sentinel, to simplify the generated code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78504 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r78501, it doesn't build.
Daniel Dunbar [Sat, 8 Aug 2009 21:12:40 +0000 (21:12 +0000)]
Revert r78501, it doesn't build.

 --- Reverse-merging r78501 into '.':
U    lib/Target/PIC16/PIC16TargetObjectFile.cpp
D    lib/Target/PIC16/PIC16Section.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78503 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomake PIC16 create its own custom MCSection.
Chris Lattner [Sat, 8 Aug 2009 20:55:25 +0000 (20:55 +0000)]
make PIC16 create its own custom MCSection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78501 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomake target-specific TLOF impls (except PIC16) create target-specific
Chris Lattner [Sat, 8 Aug 2009 20:52:13 +0000 (20:52 +0000)]
make target-specific TLOF impls (except PIC16) create target-specific
MCSection instances.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78500 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agostub out PECOFF/MachO/ELF MCSection classes
Chris Lattner [Sat, 8 Aug 2009 20:50:49 +0000 (20:50 +0000)]
stub out PECOFF/MachO/ELF MCSection classes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78499 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoeliminate TargetLoweringObjectFileSparc in favor of a TAI hook.
Chris Lattner [Sat, 8 Aug 2009 20:43:12 +0000 (20:43 +0000)]
eliminate TargetLoweringObjectFileSparc in favor of a TAI hook.
A TAI hook is appropriate in this case because this is just an
asm syntax issue, not a semantic difference. TLOF should model
the semantics of the section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78498 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't build illegal ops in DAGCombiner::SimplifyBinOpWithSameOpcodeHands().
Jakob Stoklund Olesen [Sat, 8 Aug 2009 20:42:17 +0000 (20:42 +0000)]
Don't build illegal ops in DAGCombiner::SimplifyBinOpWithSameOpcodeHands().

Blackfin supports and/or/xor on i32 but not on i16. Teach
DAGCombiner::SimplifyBinOpWithSameOpcodeHands to not produce illegal nodes
after legalize ops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78497 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agogive pic16 a target-specific section creation name too
Chris Lattner [Sat, 8 Aug 2009 20:23:47 +0000 (20:23 +0000)]
give pic16 a target-specific section creation name too

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78496 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agonow that getOrCreateSection is all object-file specific,
Chris Lattner [Sat, 8 Aug 2009 20:22:20 +0000 (20:22 +0000)]
now that getOrCreateSection is all object-file specific,
give the impls an object-file-specific name.  In the future
they can take different arguments etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78495 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agosink getOrCreateSection down into all the object file implementations,
Chris Lattner [Sat, 8 Aug 2009 20:14:13 +0000 (20:14 +0000)]
sink getOrCreateSection down into all the object file implementations,
now that they create *all* the sections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78494 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix some cut and paste-os.
Eric Christopher [Sat, 8 Aug 2009 20:09:33 +0000 (20:09 +0000)]
Fix some cut and paste-os.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78493 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd a little function to do arbitrary string pattern matching in a
Chris Lattner [Sat, 8 Aug 2009 20:02:57 +0000 (20:02 +0000)]
add a little function to do arbitrary string pattern matching in a
much more efficient way than a sequence of if's.  Switch MatchRegisterName
to use it.  It would be nice if someone could factor this out to a shared
place in tblgen :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78492 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoadd another const
Chris Lattner [Sat, 8 Aug 2009 19:16:05 +0000 (19:16 +0000)]
add another const

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78487 91177308-0d34-0410-b5e6-96231b3b80d8