John Criswell [Mon, 28 Nov 2005 23:25:41 +0000 (23:25 +0000)]
Fixed a punctuation error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24502
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 28 Nov 2005 22:42:15 +0000 (22:42 +0000)]
fix a typo :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24501
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 28 Nov 2005 18:10:59 +0000 (18:10 +0000)]
a few more comments on the interfaces and functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24500
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 28 Nov 2005 18:00:38 +0000 (18:00 +0000)]
Added documented rsprofiler interface. Also remove new profiler passes, the
old ones have been updated to implement the interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24499
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Mon, 28 Nov 2005 15:49:15 +0000 (15:49 +0000)]
Add the remove() function from the C library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24498
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Mon, 28 Nov 2005 06:46:36 +0000 (06:46 +0000)]
Teach Visual Studio about new files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24497
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Mon, 28 Nov 2005 06:45:57 +0000 (06:45 +0000)]
Fix VC++ warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24496
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 28 Nov 2005 04:52:39 +0000 (04:52 +0000)]
Add a missed optimization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24495
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 28 Nov 2005 02:30:22 +0000 (02:30 +0000)]
Use std:: where appropriate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24494
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 28 Nov 2005 00:58:09 +0000 (00:58 +0000)]
Random sampling (aka Arnold and Ryder) profiling. This is still preliminary, but it works on spec on x86 and alpha. The idea is to allow profiling passes to remember what profiling they inserted, then a random sampling framework is inserted which consists of duplicated basic blocks (without profiling), such that at each backedge in the program and entry into every function, the framework chooses whether to use the instrumented code or the instrumentation free code. The goal of such a framework is to make it reasonably cheap to do random sampling of very expensive profiling products (such as load-value profiling).
The code is organized into 3 parts (2 passes)
1) a linked set of profiling passes, which implement an analysis group (linked, like alias analysis are). These insert profiling into the program, and remember what they inserted, so that at a later time they can be queried about any instruction.
2) a pass that handles inserting the random sampling framework. This also has options to control how random samples are choosen. Currently implemented are Global counters, register allocated global counters, and read cycle counter (see? there was a reason for it).
The profiling passes are almost identical to the existing ones (block, function, and null profiling is supported right now), and they are valid passes without the sampling framework (hence the existing passes can be unified with the new ones, not done yet).
Some things are a bit ugly still, but that should be fixed up soon enough.
Other todo? making the counter values not "magic 2^16 -1" values, but dynamically choosable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24493
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 26 Nov 2005 22:39:34 +0000 (22:39 +0000)]
Small tweaks noticed while on the plane.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24492
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 25 Nov 2005 16:04:54 +0000 (16:04 +0000)]
since reg2mem requires it, might as well mention that it preserves it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24491
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Fri, 25 Nov 2005 07:49:25 +0000 (07:49 +0000)]
add support for dynamic_stackalloc to the dag isel (thanks andrew ;)
next up: support argument passing in memory, not just registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24490
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 23 Nov 2005 05:29:52 +0000 (05:29 +0000)]
Some first bits of AltiVec stuff: Instruction Formats, Encodings, and
Registers. Apologies to Jim if the scheduling info so far isn't accurate.
There's a few more things like VRsave support that need to be finished up
in my local tree before I can commit code that Does The Right Thing for
turning 4 x float into the various altivec packed float instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24489
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Nov 2005 22:14:23 +0000 (22:14 +0000)]
Reg2Mem is something a pass may depend on, so allow that
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24488
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Nov 2005 21:45:19 +0000 (21:45 +0000)]
turns out, demotion and invokes and critical edges don't mix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24487
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Nov 2005 20:59:00 +0000 (20:59 +0000)]
Fix warning, the better way. Really, this is what this instruction is for, so use it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24486
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Nov 2005 20:56:05 +0000 (20:56 +0000)]
Fix warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24485
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 22 Nov 2005 18:16:00 +0000 (18:16 +0000)]
Check in code to scalarize arbitrarily wide packed types for some simple
vector operations (load, add, sub, mul).
This allows us to codegen:
void %foo(<4 x float> * %a) {
entry:
%tmp1 = load <4 x float> * %a;
%tmp2 = add <4 x float> %tmp1, %tmp1
store <4 x float> %tmp2, <4 x float> *%a
ret void
}
on ppc as:
_foo:
lfs f0, 12(r3)
lfs f1, 8(r3)
lfs f2, 4(r3)
lfs f3, 0(r3)
fadds f0, f0, f0
fadds f1, f1, f1
fadds f2, f2, f2
fadds f3, f3, f3
stfs f0, 12(r3)
stfs f1, 8(r3)
stfs f2, 4(r3)
stfs f3, 0(r3)
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24484
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Tue, 22 Nov 2005 04:20:06 +0000 (04:20 +0000)]
massive DAGISel patch. lots and lots more stuff compiles now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24483
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Tue, 22 Nov 2005 01:29:36 +0000 (01:29 +0000)]
Rather than attempting to legalize 1 x float, make sure the SD ISel never
generates it. Make MVT::Vector expand-only, and remove the code in
Legalize that attempts to legalize it.
The plan for supporting N x Type is to continually epxand it in ExpandOp
until it gets down to 2 x Type, where it will be scalarized into a pair of
scalars.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24482
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 23:06:54 +0000 (23:06 +0000)]
Use HasDotTypeDotSizeDirective instead of forELF
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24481
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 23:06:08 +0000 (23:06 +0000)]
Add a new flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24480
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 22:48:18 +0000 (22:48 +0000)]
Remove a level of indentation by using a continue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24479
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 22:43:58 +0000 (22:43 +0000)]
Simplify the subtarget info, allow the asmwriter to do some target sensing
based on TargetType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24478
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 22:39:40 +0000 (22:39 +0000)]
Use subtarget information computed by X86Subtarget instead of rolling our own.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24477
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 22:31:58 +0000 (22:31 +0000)]
Make the X86 subtarget compute the basic target type: ELF, Cygwin, Darwin,
or native Win32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24476
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 22:19:48 +0000 (22:19 +0000)]
Add a forELF flag, allowing the removal of forCygwin and simplification of
conditionals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24475
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 19:51:51 +0000 (19:51 +0000)]
Add some more directives
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24474
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 19:50:31 +0000 (19:50 +0000)]
simplify and genericize this code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24473
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 21 Nov 2005 14:14:54 +0000 (14:14 +0000)]
add support for div/rem to the dag->dag isel. yay.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24472
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 21 Nov 2005 14:09:40 +0000 (14:09 +0000)]
I think I know what you meant here, but just to be safe I'll let you
do it. :)
<_sabre_> excuses excuses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24471
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:40:17 +0000 (08:40 +0000)]
Eliminate unneeded intermediate class. Move doFinalizeMethod to bottom of
file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24470
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:38:26 +0000 (08:38 +0000)]
Start using shared asmprinter Constant Pool emitter, use shorter cpi names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24469
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:33:17 +0000 (08:33 +0000)]
prune #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24468
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:32:23 +0000 (08:32 +0000)]
Switch to using the shared constant pool printer, along with using shorter
CPI ids
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24467
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:29:17 +0000 (08:29 +0000)]
Switch to using the generic constant pool emitter impl, use shorter
CPI names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24466
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:26:15 +0000 (08:26 +0000)]
Use generic constant pool emission code in the AsmPrinter class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24465
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:25:09 +0000 (08:25 +0000)]
Allow target to customize directive used to switch to arbitrary section in SwitchSection,
add generic constant pool emitter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:24:11 +0000 (08:24 +0000)]
add two more config directives, add method for printing constant pool
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:14:07 +0000 (08:14 +0000)]
Use the FunctionNumber provided by the AsmPrinter class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:13:27 +0000 (08:13 +0000)]
increment the function number in SetupMachineFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24461
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:12:47 +0000 (08:12 +0000)]
Make the AsmPrinter keep track of the notion of a function number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24460
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 08:02:41 +0000 (08:02 +0000)]
Use CommentString where possible, fix a bug where aix mode wouldn't assemble
due to basic blocks being misnamed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24459
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:57:37 +0000 (07:57 +0000)]
unify the darwin and aix constant pool printers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24458
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:51:36 +0000 (07:51 +0000)]
Adjust to capitalized asmprinter method names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24457
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:51:23 +0000 (07:51 +0000)]
Adjust to capitalized AsmPrinter method names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24456
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:51:06 +0000 (07:51 +0000)]
Capitalize methods for better consistency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24455
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:43:59 +0000 (07:43 +0000)]
Use PrivateGlobalPrefix for basic block labels. This allows the x86 darwin
port to properly use L for the bb prefix instead of .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24454
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:41:05 +0000 (07:41 +0000)]
use PrivateGlobalPrefix for basic blocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24453
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:39:22 +0000 (07:39 +0000)]
Use PrivateGlobalPrefix for basic block labels
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24452
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:38:08 +0000 (07:38 +0000)]
Use PrivateGlobalPrefix for basic blocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24451
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:30:28 +0000 (07:30 +0000)]
Switch to the new shared SwitchSection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24450
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:26:04 +0000 (07:26 +0000)]
Start using SwitchSection, allowing globals and functions to be emitted
to specific sections. Delete some dead functions copied from the X86 backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24449
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:16:34 +0000 (07:16 +0000)]
convert the rest of this over to use SwitchSection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24448
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:11:11 +0000 (07:11 +0000)]
Start using the AsmPrinter shared SwitchSection code. This allows the X86
backend to implement global variables in sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24447
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:06:58 +0000 (07:06 +0000)]
This is now implemented in common codegen code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24446
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:06:27 +0000 (07:06 +0000)]
Add section switching to common code generator code. Add a couple of
asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24445
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 07:05:42 +0000 (07:05 +0000)]
Add section switching to to common AsmPrinter code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24444
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 06:55:27 +0000 (06:55 +0000)]
Rename SwitchSection -> switchSection to avoid conflicting with a future
change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24443
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 06:51:52 +0000 (06:51 +0000)]
Start using PrivateGlobalPrefix correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24442
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 06:47:58 +0000 (06:47 +0000)]
set PrivateGlobalPrefix on darwin, use it when printing out CP references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24441
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 06:46:22 +0000 (06:46 +0000)]
Naturally align doubles in the constant pool, set PrivateGlobalPrefix on
darwin, use it when printing the constant pool indices so the labels are
appropriately private, emit cp entries to .const instead of .data on darwin
and only emit a single .section for the constant pool, not one for each
entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24440
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 21 Nov 2005 06:41:08 +0000 (06:41 +0000)]
Add a new option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24439
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 22:57:19 +0000 (22:57 +0000)]
Lower READCYCLECOUNTER correctly, preserving the chain result
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24438
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 22:56:56 +0000 (22:56 +0000)]
Legalize MERGE_VALUES, expand READCYCLECOUNTER correctly, so it doesn't
break control dependence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24437
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 22:55:57 +0000 (22:55 +0000)]
add a new node type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24436
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 22:13:18 +0000 (22:13 +0000)]
encode rdtsc correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24435
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 22:01:40 +0000 (22:01 +0000)]
use chain operands to ensure the copies don't wander from the rdtsc instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24434
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 21:46:52 +0000 (21:46 +0000)]
This should not be dce'd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24433
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 20 Nov 2005 21:42:49 +0000 (21:42 +0000)]
oops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24432
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 20 Nov 2005 21:41:59 +0000 (21:41 +0000)]
check that rdtsc is generated from readcyclecounter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24431
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 20 Nov 2005 21:41:10 +0000 (21:41 +0000)]
The second patch of X86 support for read cycle counter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24430
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Sun, 20 Nov 2005 21:32:07 +0000 (21:32 +0000)]
The first patch of X86 support for read cycle counter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24429
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 20 Nov 2005 03:45:52 +0000 (03:45 +0000)]
more progress towards bug 291 being finished. Patch by Owen Anderson,
HAVE_GV case fixed up by me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24428
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 18:40:42 +0000 (18:40 +0000)]
Unbreak codegen of bools. This should fix the llc/jit/llc-beta failures
from last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 07:48:33 +0000 (07:48 +0000)]
Initialize this variable on all paths, fixing a crasher in windows. Thanks
to JeffC for pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24426
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 07:44:09 +0000 (07:44 +0000)]
Improve Selection DAG printer portability. Patch by Owen Anderson!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24425
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 07:05:57 +0000 (07:05 +0000)]
Teach tblgen about instruction operands that have multiple MachineInstr
operands, digging into them to find register values (used on X86). Patch
by Evan Cheng!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24424
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 07:01:30 +0000 (07:01 +0000)]
Teach the x86 backend about the register constraints of its addressing mode.
Patch by Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24423
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 07:00:10 +0000 (07:00 +0000)]
Capture more operand info, patch by Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24422
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 06:58:46 +0000 (06:58 +0000)]
Teach the graph viewer to handle register operands that are zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24421
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 05:51:46 +0000 (05:51 +0000)]
Silence a bogus warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24420
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 02:11:08 +0000 (02:11 +0000)]
Add load and other support to the dag-dag isel. Patch contributed by Evan
Cheng!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24419
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 01:44:53 +0000 (01:44 +0000)]
Add some method variants, patch by Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24418
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 19 Nov 2005 01:42:10 +0000 (01:42 +0000)]
Add two new construction methods, patch by Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24417
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 19 Nov 2005 00:36:38 +0000 (00:36 +0000)]
Teach LLVM how to scalarize packed types. Currently, this only works on
packed types with an element count of 1, although more generic support is
coming. This allows LLVM to turn the following code:
void %foo(<1 x float> * %a) {
entry:
%tmp1 = load <1 x float> * %a;
%tmp2 = add <1 x float> %tmp1, %tmp1
store <1 x float> %tmp2, <1 x float> *%a
ret void
}
Into:
_foo:
lfs f0, 0(r3)
fadds f0, f0, f0
stfs f0, 0(r3)
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24416
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 19:38:15 +0000 (19:38 +0000)]
testcase for recent indvars patches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24415
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 18:30:47 +0000 (18:30 +0000)]
Fix a crash building 176.gcc due to my recent patch, which only fixed
half the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24414
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 18 Nov 2005 13:57:03 +0000 (13:57 +0000)]
prevent latent switch creation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24413
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 18 Nov 2005 07:42:56 +0000 (07:42 +0000)]
Split out the shift code from visitBinary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24412
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 07:31:42 +0000 (07:31 +0000)]
Implement a refinement to the mem2reg algorithm for cases where an alloca
has a single def. In this case, look for uses that are dominated by the def
and attempt to rewrite them to directly use the stored value.
This speeds up mem2reg on these values and reduces the number of phi nodes
inserted. This should address PR665.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24411
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 07:29:44 +0000 (07:29 +0000)]
This needs proper dominance
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24410
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 07:28:26 +0000 (07:28 +0000)]
post-dom-frontiers requires proper post-dominance
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24409
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 07:27:53 +0000 (07:27 +0000)]
This requires proper dominance
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24408
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 07:27:33 +0000 (07:27 +0000)]
Fix the dominates method to return true if the two nodes are the same. Add
a new properlyDominates method to do what the old one did.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24407
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 18 Nov 2005 01:04:42 +0000 (01:04 +0000)]
add more patterns, patch by Evan Cheng.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24406
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Fri, 18 Nov 2005 00:53:32 +0000 (00:53 +0000)]
Also add the new vector value type here, for completeness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24405
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 17 Nov 2005 21:44:42 +0000 (21:44 +0000)]
Teach the type lowering code about turning packed types into vector types.
Next step: generating vector dag nodes, and legalizing them into scalar
code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24404
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 17 Nov 2005 19:40:30 +0000 (19:40 +0000)]
only use dyld stubs if not in ppc-static mode. This completes support for
non-static codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24403
91177308-0d34-0410-b5e6-
96231b3b80d8