Anton Korobeynikov [Wed, 9 Jul 2008 13:30:02 +0000 (13:30 +0000)]
Add FIXME needed to be resolved later
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53324
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:29:44 +0000 (13:29 +0000)]
Use only 'subset' of flags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53323
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:29:27 +0000 (13:29 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53322
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:29:08 +0000 (13:29 +0000)]
Revert accidentially added stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53321
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:28:49 +0000 (13:28 +0000)]
First sketch of special section objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53320
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:28:19 +0000 (13:28 +0000)]
Honour text sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53319
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:27:59 +0000 (13:27 +0000)]
Use isWeakForLinker() hook
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53318
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:27:37 +0000 (13:27 +0000)]
Unbreak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53317
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:27:16 +0000 (13:27 +0000)]
Switch to new section name handling facility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53316
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:26:52 +0000 (13:26 +0000)]
Another bunch of hacks for named sections support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53315
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:26:24 +0000 (13:26 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53314
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:26:05 +0000 (13:26 +0000)]
Drop mergeable flag, if size is no suitable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53313
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:25:46 +0000 (13:25 +0000)]
Fix several bugs in named sections handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53312
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:25:26 +0000 (13:25 +0000)]
Add hacky way to distinguish named and named sections. This will be generalized in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53311
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:24:55 +0000 (13:24 +0000)]
Use 'gnu.linkonce', where needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53310
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:24:38 +0000 (13:24 +0000)]
Fix thinko
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53309
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:24:18 +0000 (13:24 +0000)]
Drop dead member reference
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53308
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:23:57 +0000 (13:23 +0000)]
Add funny darwin section selection logic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53307
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:23:37 +0000 (13:23 +0000)]
Handle ELF mergeable sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53306
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:23:08 +0000 (13:23 +0000)]
Provide section selection for X86 ELF targets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53305
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:22:46 +0000 (13:22 +0000)]
Provide general hook for section name calculation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53304
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:22:17 +0000 (13:22 +0000)]
Print entity size for mergeable sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53303
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:21:49 +0000 (13:21 +0000)]
Split PrintSectionFlags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53302
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:21:29 +0000 (13:21 +0000)]
Split UniqueSectionForGlobal()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53301
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:21:08 +0000 (13:21 +0000)]
Split PreferredEHDataFormat hook
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53300
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:20:48 +0000 (13:20 +0000)]
Split X86TargetAsmInfo into 4 subtarget-specific classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53299
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:20:27 +0000 (13:20 +0000)]
Whitespace cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53298
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:20:07 +0000 (13:20 +0000)]
Move flag decoding stuff into special hook
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53297
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:19:38 +0000 (13:19 +0000)]
Properly handle linkonce stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53296
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:19:08 +0000 (13:19 +0000)]
Provide skeletone code for calculation of section, where global should be emitted into
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53295
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:18:38 +0000 (13:18 +0000)]
Use 'llvm-linkonce' consistently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53294
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:18:21 +0000 (13:18 +0000)]
Make hooks virtual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53293
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:18:02 +0000 (13:18 +0000)]
Add default section name resolution routine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53292
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:17:36 +0000 (13:17 +0000)]
Constify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53291
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 9 Jul 2008 13:16:59 +0000 (13:16 +0000)]
Add code for default section falgs computation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53290
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jul 2008 12:08:25 +0000 (12:08 +0000)]
Remove some unneeded includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53289
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jul 2008 12:07:22 +0000 (12:07 +0000)]
Redo LegalizeTypes soft float support for
SINT_TO_FP and UINT_TO_FP. This now produces
the same code as LegalizeDAG (the previous
code was based on a mistaken idea of what
LegalizeDAG did in this case).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53288
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jul 2008 11:15:31 +0000 (11:15 +0000)]
Forgot to update the chain result when softening
loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53287
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jul 2008 11:13:46 +0000 (11:13 +0000)]
LegalizeTypes soft float support for FP_TO_SINT and
FP_TO_UINT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53286
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jul 2008 11:11:47 +0000 (11:11 +0000)]
LegalizeTypes support for powi soft float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53285
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 9 Jul 2008 08:07:41 +0000 (08:07 +0000)]
Make the role of MVT::i32 clearer here, and add a
note since it is not clear whether it is correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53284
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Jul 2008 07:35:26 +0000 (07:35 +0000)]
Simplify, suggested by Chris Lattner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53283
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Jul 2008 07:29:11 +0000 (07:29 +0000)]
Fold (a < 8) && (b < 8) into (a|b) < 8 for unsigned less or greater than.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53282
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Jul 2008 06:38:06 +0000 (06:38 +0000)]
Missed alignment argument on stores lowered from memcpy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53281
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 9 Jul 2008 06:36:53 +0000 (06:36 +0000)]
Back out 53254. It broke ppc debug info codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53280
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 9 Jul 2008 06:02:33 +0000 (06:02 +0000)]
Make the DICountVisitor not a visitor. This keeps us from calling virtual
functions and junk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53279
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 9 Jul 2008 05:55:53 +0000 (05:55 +0000)]
Silence warning by initializing variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53278
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 9 Jul 2008 05:32:22 +0000 (05:32 +0000)]
Fixed features usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53277
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Jul 2008 05:20:13 +0000 (05:20 +0000)]
Fold ((1 << a) & 1) to (a == 0).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53276
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Jul 2008 05:14:23 +0000 (05:14 +0000)]
Add a little wrapper header that is put around bc files when emitting
bc files for modules with a target triple that indicates they are for
darwin. The reader unconditionally handles this, and the writer could
turn this on for more targets if we care.
This change has two benefits for darwin:
1) it allows us to encode the cpu type of the file in an easy to read
place that doesn't require decoding the bc file.
2) it works around a bug (IMO) in darwin's AR where it is incapable of
handling files that are not a multiple of 8 bytes long. BC files
are only guaranteed to be multiples of 4 bytes long.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Jul 2008 05:12:07 +0000 (05:12 +0000)]
random bugfix sitting in my tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53274
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 9 Jul 2008 05:01:02 +0000 (05:01 +0000)]
Fix a broken test. Neither load is eliminable without changing the CFG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53273
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 9 Jul 2008 04:45:36 +0000 (04:45 +0000)]
Fixe typos and 80 column size problems
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53272
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Jul 2008 04:32:37 +0000 (04:32 +0000)]
Reduce x - y to -y when we know the 'x' part will get masked off anyways.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53271
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 9 Jul 2008 04:15:08 +0000 (04:15 +0000)]
MipsTargetLowering cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53270
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 9 Jul 2008 03:21:51 +0000 (03:21 +0000)]
Remove getValueRange from SCEV. It wasn't doing anything there anyways, and a
more complete version is now available from the LoopVR pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53269
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 9 Jul 2008 00:50:40 +0000 (00:50 +0000)]
Consistently put quotes around pass names in debugging output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53268
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 9 Jul 2008 00:12:01 +0000 (00:12 +0000)]
If loop induction variable's start value is less then its exit value then do not split the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53265
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 9 Jul 2008 00:00:42 +0000 (00:00 +0000)]
const-ify SelectionDAG::getNodeValueTypes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53264
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Jul 2008 23:59:09 +0000 (23:59 +0000)]
It's no longer necessary to test if a MachineBasicBlock's
parent is non-null. It now always is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53263
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Jul 2008 23:47:04 +0000 (23:47 +0000)]
Verify that MachineMemOperand alignment is a non-zero power of 2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53262
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Jul 2008 23:46:32 +0000 (23:46 +0000)]
Factor out the code for computing an alignment value, and make it
available to getAtomic in addition to just getLoad and getStore,
to prevent MachineMemOperands with 0 alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53261
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 8 Jul 2008 23:36:37 +0000 (23:36 +0000)]
Fix the build. Apparently MachineInstr& is no longer implicitly convertable to MachineBasicBlock::iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53260
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 8 Jul 2008 23:33:46 +0000 (23:33 +0000)]
The graph name really does matter for configurations that use gv.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53259
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 8 Jul 2008 22:24:50 +0000 (22:24 +0000)]
Make the local register allocator compute (purely local) liveness information for itself
rather than depending on LiveVariables. This decreases compile time from:
0.5909s (LV + Regalloc) to 0.421s (just regalloc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53256
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 8 Jul 2008 21:57:56 +0000 (21:57 +0000)]
Testcase for debug info from data-only files.
This one is x86-32-Darwin specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53255
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 8 Jul 2008 21:56:22 +0000 (21:56 +0000)]
Make debug info come out in data-only files.
This is a question of the debugging setup code not
being called at the right time, and it's called from
target-dependent code for some reason. I have only
attempted to fix Darwin, but I'm pretty sure it's
broken elsewhere; I'll leave that to people who can
test it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53254
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 8 Jul 2008 21:53:43 +0000 (21:53 +0000)]
Remove some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53253
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Kledzik [Tue, 8 Jul 2008 21:14:10 +0000 (21:14 +0000)]
fix dangling pointer and argv off by one errors. Add support for --disable-inlining
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53249
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 8 Jul 2008 20:06:39 +0000 (20:06 +0000)]
Do not CSE DEBUG_LOC, DBG_LABEL, DBG_STOPPOINT, DECLARE, and EH_LABEL SDNode's. This improves compile time slightly at -O0 -g.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53246
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 20:03:24 +0000 (20:03 +0000)]
Remove custom expansion from LegalizeTypes when doing
soft float: experiments show that targets aren't
expecting this for results or for operands. Add
support select/select_cc result soft float and
correct operand soft float for these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53245
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 20:00:05 +0000 (20:00 +0000)]
Add missing select_cc libcall line, somehow omitted
in LegalizeTypes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 18:47:38 +0000 (18:47 +0000)]
improve comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 18:33:33 +0000 (18:33 +0000)]
'Optimize' test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53242
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 17:25:49 +0000 (17:25 +0000)]
Add a new hidden option to the interpreter to cause it to print
out every volatile load and store. This is useful for tracking
down insane volatile memory bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53241
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 17:18:32 +0000 (17:18 +0000)]
Fix PR2496, a really nasty bug which involved sinking volatile loads
into phis. This is actually the same bug as PR2262 /
2008-04-29-VolatileLoadDontMerge.ll, but I missed checking the first
predecessor for multiple successors. Testcase here:
InstCombine/2008-07-08-VolatileLoadMerge.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53240
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 17:18:05 +0000 (17:18 +0000)]
new testcase for PR2496
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53239
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 8 Jul 2008 16:40:43 +0000 (16:40 +0000)]
Unbreak C++ tests on x86 Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53237
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 8 Jul 2008 16:38:42 +0000 (16:38 +0000)]
Global variables beginning with \01 have special meaning on Darwin, so we need to remove
the name prefix when we change them from internal to external. This allows bugpointing
of codegen miscompilations to work more reliably on Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53236
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 10:50:55 +0000 (10:50 +0000)]
LegalizeTypes support for FP_ROUND and FP_EXTEND
soft float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53231
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 10:11:36 +0000 (10:11 +0000)]
Testcase for PR2520.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53230
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 09:41:30 +0000 (09:41 +0000)]
Add some helpers for manipulating function
parameter attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53228
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 09:33:14 +0000 (09:33 +0000)]
Pacify gcc-4.3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53227
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 09:27:25 +0000 (09:27 +0000)]
Note that 'nest' only applies to pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53226
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 8 Jul 2008 08:51:47 +0000 (08:51 +0000)]
Add CallSite::getArgumentNo() to be able to translate an operand number into a
argument number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53225
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 8 Jul 2008 08:50:32 +0000 (08:50 +0000)]
Add CallSite::getArgumentOffset() to hide the differences in operands betwen
Call and Invoke in a single method instead of having it hardcoded in multiple
places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53224
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 8 Jul 2008 08:38:44 +0000 (08:38 +0000)]
Add some convenience methods for manipulating
call attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53223
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 05:46:34 +0000 (05:46 +0000)]
Fix three bugs:
1) evaluate [v]fcmp true/false with undefs to true or false instead
of undef.
2) fix vector comparisons with undef to return a vector result instead
of i1
3) fix vector comparisons with evaluatable results to return vector
true/false instead of i1 true/false (PR2529)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 8 Jul 2008 05:12:37 +0000 (05:12 +0000)]
clarify :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53218
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 8 Jul 2008 05:05:37 +0000 (05:05 +0000)]
Expand SCEVUDiv of power of 2 to a lshr instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53217
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 8 Jul 2008 00:55:58 +0000 (00:55 +0000)]
Avoid unnecessary string construction during asm printing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53215
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Kledzik [Mon, 7 Jul 2008 23:24:06 +0000 (23:24 +0000)]
add _lto_codegen_debug_options so that linker can use it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53213
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jul 2008 23:14:23 +0000 (23:14 +0000)]
Pool-allocation for MachineInstrs, MachineBasicBlocks, and
MachineMemOperands. The pools are owned by MachineFunctions.
This drastically reduces the number of calls to malloc/free made
during the "Emit" phase of scheduling, as well as later phases
in CodeGen. Combined with other changes, this speeds up the
"instruction selection" phase of CodeGen by 10% in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53212
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jul 2008 23:02:41 +0000 (23:02 +0000)]
Pool-allocation for SDNodes. The pool is allocated once for each function,
and reused across SelectionDAGs.
This drastically reduces the number of calls to malloc/free made during
instruction selection, and improves memory locality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53211
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jul 2008 22:58:06 +0000 (22:58 +0000)]
Add some basic Pool-allocation infrastructure. This adds a Recycler class,
for handling bookkeeping for deleted objects, as well as the alist class
template, for keeping lists of objects allocated from Recyclers, and some
related utilities.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53210
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Jul 2008 22:22:07 +0000 (22:22 +0000)]
Clean up PPC register specification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53209
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Jul 2008 22:21:06 +0000 (22:21 +0000)]
ATT asm printer just print register AsmName's instead of calling tolower on each charater of Name. This speeds it up by 10%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53208
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 7 Jul 2008 22:19:41 +0000 (22:19 +0000)]
TargetRegisterDesc::Name field is the same as the abstract register name. There is no need for targets to specify register names in addition to their AsmName's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53207
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 7 Jul 2008 21:41:57 +0000 (21:41 +0000)]
Use the canonical way to get an empty structure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53206
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 7 Jul 2008 21:00:17 +0000 (21:00 +0000)]
Refactor the tablegen DAGISelEmitter code for outputing calls to
getTargetNode and SelectNodeTo to reduce duplication, and to
make some of the getTargetNode code available to SelectNodeTo.
Use SelectNodeTo instead of getTargetNode in several new
interesting cases, as it mutates nodes in place instead of
creating new ones.
This triggers some scheduling behavior differences due to nodes
being presented to the scheduler in a different order. Some of the
arbitrary scheduling decisions it makes are now arbitrarily made
differently. This is visible in CodeGen/PowerPC/LargeAbsoluteAddr.ll,
where a trivial scheduling difference led to a trivial register
allocation difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53203
91177308-0d34-0410-b5e6-
96231b3b80d8