Commit Graph

59086 Commits

Author SHA1 Message Date
Anton Korobeynikov abb51755c8 We're not going to spend 100% of time in interrupts, do we? :)
llvm-svn: 70713
2009-05-03 13:02:57 +00:00
Anton Korobeynikov 8a17dff7d0 Add simple reg-reg add.
llvm-svn: 70712
2009-05-03 13:02:39 +00:00
Anton Korobeynikov 6ff6fc95a0 gas uses lower letter for register names
llvm-svn: 70711
2009-05-03 13:02:22 +00:00
Anton Korobeynikov d7afd69e3b Add code enough for emission of reg-reg and reg-imm moves. This allows us to compile "ret i16 0" properly!
llvm-svn: 70710
2009-05-03 13:02:04 +00:00
Anton Korobeynikov c942782b3b Add function body printing routine
llvm-svn: 70709
2009-05-03 13:01:41 +00:00
Anton Korobeynikov ef811d8e05 Add 'msp430' target triple recognizer
llvm-svn: 70708
2009-05-03 13:01:23 +00:00
Anton Korobeynikov a9b7df98e6 Make emit{Prologue,Epilogue}() noop for now
llvm-svn: 70707
2009-05-03 13:01:04 +00:00
Anton Korobeynikov 69f51f0b41 Add callee-saved regs & reg classes getter hooks
llvm-svn: 70706
2009-05-03 13:00:46 +00:00
Anton Korobeynikov efcd5aa381 Add simple FP indicator for given function hook
llvm-svn: 70705
2009-05-03 13:00:28 +00:00
Anton Korobeynikov c10f98ace3 Provide set of reserved registers
llvm-svn: 70704
2009-05-03 13:00:11 +00:00
Anton Korobeynikov 7bfc3ea2ee Add proper ISD::RET lowering
llvm-svn: 70703
2009-05-03 12:59:50 +00:00
Anton Korobeynikov 3849be6ca1 Add first draft of MSP430 calling convention stuff and draft of ISD::FORMAL_ARGUMENTS node lowering.
llvm-svn: 70702
2009-05-03 12:59:33 +00:00
Anton Korobeynikov 77e5a11ec2 Fix register names, fix register allocation order, handle frame pointer.
llvm-svn: 70701
2009-05-03 12:59:16 +00:00
Anton Korobeynikov 64717bbc14 Clearify the usage and add some debug stuff
llvm-svn: 70700
2009-05-03 12:58:58 +00:00
Anton Korobeynikov e10f69a8a7 Cleanup
llvm-svn: 70699
2009-05-03 12:58:40 +00:00
Anton Korobeynikov 128e8a188f Add cmake script. No idea whether it works or not :)
llvm-svn: 70698
2009-05-03 12:58:22 +00:00
Anton Korobeynikov 4130a7c1e7 Add a note
llvm-svn: 70697
2009-05-03 12:58:05 +00:00
Daniel Dunbar 961202372f Add a ComputeIvarBaseOffset overload taking an implementation
decl. Only this routine will be suitable for computing the offset of a
synthesized ivar.
 - No functionality change.

llvm-svn: 70696
2009-05-03 12:57:56 +00:00
Anton Korobeynikov 7c4db99df3 Typo
llvm-svn: 70695
2009-05-03 12:57:47 +00:00
Anton Korobeynikov 101380015c Dummy MSP430 backend
llvm-svn: 70694
2009-05-03 12:57:15 +00:00
Daniel Dunbar 7bee415836 Fix a possible memory error, the record layout entry could be
invalidated by layout out the super class, we cannot cache the map
entry.

llvm-svn: 70693
2009-05-03 11:41:43 +00:00
Daniel Dunbar 2b65fe3a32 Implement the interface/implementation layout distinction.
- These routines should now be independent of the Sema state.

 - This is nearly zero functionality change, the distinction only
   matters in the non-fragile ABI, and the consumers that care about
   this distinction should be using getASTObjCImplementationLayout.

llvm-svn: 70692
2009-05-03 11:16:44 +00:00
Daniel Dunbar 12119b959b Compute Objective-C metadata size information from the record layout,
not the shadow structure.

llvm-svn: 70691
2009-05-03 10:46:44 +00:00
Daniel Dunbar 02f7f5f6d6 Split out getASTObjCImplementationLayout
- The difference from getASTObjCInterfaceLayout is that the computes
   the layout including synthesized ivars.

 - No functionality change, they currently both compute the same thing
   -- whether that includes synthesized ivars or not depends on when
   they get called!!!

llvm-svn: 70690
2009-05-03 10:38:35 +00:00
Daniel Dunbar bc5a7a8894 Remove an unneeded special case.
llvm-svn: 70689
2009-05-03 10:35:52 +00:00
Daniel Dunbar d58929be46 PR4063, with feeling: Chain PP callbacks by default.
- This is somewhat cleaner and also fixes PR4063 for real, I had the
   order wrong so we were just creating an empty dependency file.

llvm-svn: 70687
2009-05-03 10:04:17 +00:00
Daniel Dunbar f6d272f241 PR4063: Fix dependency generation with -E.
llvm-svn: 70686
2009-05-03 09:35:25 +00:00
Chris Lattner 61af27860d look at the right operand when increasing the size of an asm output,
this fixes http://llvm.org/bugs/show_bug.cgi?id=3373#c20

llvm-svn: 70685
2009-05-03 09:05:53 +00:00
Daniel Dunbar ccf6183687 Remove unused argument.
llvm-svn: 70684
2009-05-03 08:56:52 +00:00
Daniel Dunbar 0cec95f86a Coalesce the ivar offset calculation further.
llvm-svn: 70683
2009-05-03 08:55:17 +00:00
Argyrios Kyrtzidis 97324cec99 -Move the DwarfWriter::ValidDebugInfo check to a static DIDescriptor::ValidDebugInfo
-Create DebugLocs without the need to have a DwarfWriter around

llvm-svn: 70682
2009-05-03 08:50:41 +00:00
Chris Lattner abf843db36 temporary hack to work around PR4128
llvm-svn: 70681
2009-05-03 08:42:09 +00:00
Chris Lattner 99837deeaf don't shadow 'i'
llvm-svn: 70680
2009-05-03 08:38:58 +00:00
Chris Lattner cc1cde9c57 allow references to the larger value in a tied constraint
from the asm string, but reject references to the smaller one.

llvm-svn: 70679
2009-05-03 08:32:32 +00:00
Chris Lattner 97de21f754 code cleanup, avoid shadowing i.
llvm-svn: 70678
2009-05-03 08:24:16 +00:00
Chris Lattner 59c3a9cd54 add support for tying asm operands where the result is smaller than
the input.  This is part of PR3373.

llvm-svn: 70677
2009-05-03 08:21:20 +00:00
Daniel Dunbar c7121faa71 Remove typo
llvm-svn: 70676
2009-05-03 08:00:14 +00:00
Chris Lattner 10f221f321 implement support for asm outputs targetting non-simple lvalue destinations
like bitfields.  incidentally llvm-gcc crashes on this sort of thing also. :)

llvm-svn: 70675
2009-05-03 07:53:25 +00:00
Daniel Dunbar d09551a376 Use type from ivar instead of from shadow struct field.
- No functionality change.

llvm-svn: 70674
2009-05-03 07:52:00 +00:00
Eli Friedman 47e785783c Don't insert an extra ParenExpr around asm operands.
llvm-svn: 70673
2009-05-03 07:49:42 +00:00
Chris Lattner b65933eaa2 handle codegen of asms where a small input is tied to a large output.
llvm-svn: 70672
2009-05-03 07:27:51 +00:00
Chris Lattner 17769a34da refactor some code to get the input/output constraint info before
processing the outputs, no functionality change.

llvm-svn: 70671
2009-05-03 07:05:00 +00:00
Chris Lattner cb66c73a48 If we have mismatched integer tied operands, but the operand
number is not mentioned in the asm string, let it past sema. 
Right now these are currently rejected by the llvm code generator
but this will be fixed next.

llvm-svn: 70670
2009-05-03 07:04:21 +00:00
Chris Lattner 7d1644a151 add a flag to output asm constraints so that we efficiently know
if there is an input constraint that is tied to it.

llvm-svn: 70669
2009-05-03 06:59:37 +00:00
Chris Lattner 28b05c8249 avoid a crash when we encounter a implicit cast of the paren expr due to
promotions.  This should be fixed by not modeling asm operands (which 
require the ()'s according to the grammar) as not being paren exprs.

llvm-svn: 70668
2009-05-03 06:50:40 +00:00
Ted Kremenek 4b59ccb563 Fix: <rdar://problem/6850275> CF objects returned from methods with "new" or "copy" in their name should be treated as owned
For methods that follow the "fundamental rule" and return Core
Foundation objects, treat those objects as owned by the caller.

llvm-svn: 70665
2009-05-03 06:08:32 +00:00
Eli Friedman c97d014a9a Fix silly mistake that was breaking tests. Sorry for any inconvenience.
llvm-svn: 70664
2009-05-03 06:04:26 +00:00
Chris Lattner 2c295cfee8 rename some variables, improve comments.
llvm-svn: 70663
2009-05-03 05:59:17 +00:00
Chris Lattner 34b51e88ec refactor matched operand type checking to happen after the AsmStmt is created,
no functionality change.

llvm-svn: 70662
2009-05-03 05:55:43 +00:00
Dan Gohman 5036695c32 Revert r70645 for now; it's causing a variety of regressions.
llvm-svn: 70661
2009-05-03 05:46:20 +00:00