Devang Patel [Tue, 23 Sep 2008 23:18:26 +0000 (23:18 +0000)]
Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56515
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 23 Sep 2008 23:03:40 +0000 (23:03 +0000)]
s/ParameterAttributes/Attributes/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 23 Sep 2008 22:35:17 +0000 (22:35 +0000)]
Use parameter attribute store (soon to be renamed) for
Function Notes also. Function notes are stored at index ~0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56511
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 22:04:18 +0000 (22:04 +0000)]
Now that DeadMachineInstructionElim is basically working
correctly, it's not necessary to explicitly remove registers
from their use-def lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56509
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 21:53:34 +0000 (21:53 +0000)]
Arrange for FastISel code to have access to the MachineModuleInfo
object. This will be needed to support debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56508
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 21:40:44 +0000 (21:40 +0000)]
Track local physical register liveness. This is not the most
efficient implementation possible, but it's pretty simple and
good enough for the time being.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56504
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 Sep 2008 21:18:31 +0000 (21:18 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56502
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 23 Sep 2008 21:18:08 +0000 (21:18 +0000)]
allow inreg on the result of a function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56501
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 18:50:48 +0000 (18:50 +0000)]
Replace the LiveRegs SmallSet with a simple counter that keeps
track of the number of live registers, which is all the set was
being used for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56498
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 18:42:32 +0000 (18:42 +0000)]
Fix these enums' starting values to reflect the way that
instruction opcodes are now numbered. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56497
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 18:27:53 +0000 (18:27 +0000)]
Update the comment to reflect the new name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56496
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 18:26:47 +0000 (18:26 +0000)]
Delete an unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56495
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 23 Sep 2008 18:22:58 +0000 (18:22 +0000)]
Move the code for initializing the global base reg out of
X86ISelDAGToDAG.cpp and into X86InstrInfo.cpp. This will allow
it to be reused by FastISel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56494
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 23 Sep 2008 12:47:39 +0000 (12:47 +0000)]
Rationalize the names of passes that print information:
-callgraph => print-callgraph
-callscc => print-callgraph-sccs
-cfgscc => print-cfg-sccs
-externalfnconstants => print-externalfnconstants
-print => print-function
-print-alias-sets (no change)
-print-callgraph => dot-callgraph
-print-cfg => dot-cfg
-print-cfg-only => dot-cfg-only
-print-dom-info (no change)
-printm => print-module
-printusedtypes => print-used-types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56487
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Tue, 23 Sep 2008 08:54:41 +0000 (08:54 +0000)]
Fix indendation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56486
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 23 Sep 2008 04:37:10 +0000 (04:37 +0000)]
Add initial support for inserting last minute copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56485
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Sep 2008 23:57:37 +0000 (23:57 +0000)]
Support x86 specific inline asm modifier 'J'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56483
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 22 Sep 2008 23:28:18 +0000 (23:28 +0000)]
Remove silly semicolon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56481
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 22 Sep 2008 22:40:08 +0000 (22:40 +0000)]
Fix the alignment of loads from constant pool entries when the
load address has an offset from the base of the constant pool
entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56479
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 22 Sep 2008 22:33:34 +0000 (22:33 +0000)]
Remove a compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56478
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 22 Sep 2008 22:32:29 +0000 (22:32 +0000)]
Add hasNote() to check note associated with a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56477
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Sep 2008 22:26:15 +0000 (22:26 +0000)]
Livestacks really does preserve everything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56476
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Sep 2008 22:21:38 +0000 (22:21 +0000)]
Instead of setPreservesAll, just mark them preseving machine loop info and machine dominators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56475
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Sep 2008 22:19:34 +0000 (22:19 +0000)]
Test case for fp logical instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56474
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 22 Sep 2008 21:58:58 +0000 (21:58 +0000)]
Significant improvements to the logic for merging live intervals. This code can't
just use LI::MergeValueAsValue, as its behavior in the presence of overlapping ranges
isn't what StrongPHIElimination wants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56472
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 22 Sep 2008 21:57:32 +0000 (21:57 +0000)]
Make log, log2, log10, exp, exp2 use Expand by
default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56471
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Sep 2008 20:58:04 +0000 (20:58 +0000)]
Mark several codegen passes as preserving all analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56469
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 22 Sep 2008 20:51:30 +0000 (20:51 +0000)]
More refactoring. Yawn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56468
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:51:19 +0000 (20:51 +0000)]
Convert llvmc2 plugins to use llvm/Support/Registry.h machinery.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56467
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:50:40 +0000 (20:50 +0000)]
Move llvmc2 header files under include/llvm/CompilerDriver
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56466
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:49:34 +0000 (20:49 +0000)]
Plugin support for llvmc2 (a-la opt).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56465
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:48:48 +0000 (20:48 +0000)]
Add a 'Debugging' section to the documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56464
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:48:22 +0000 (20:48 +0000)]
Make comments a little bit more clear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56463
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:47:46 +0000 (20:47 +0000)]
Get rid of GlobalLanguageMap. Global state is evil.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56462
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:47:09 +0000 (20:47 +0000)]
Rename our version of ccc to ccc2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56461
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:46:44 +0000 (20:46 +0000)]
Fix some comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56460
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:46:19 +0000 (20:46 +0000)]
Add a (forward_as) option property
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56459
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Mon, 22 Sep 2008 20:45:17 +0000 (20:45 +0000)]
Delete the file llvmc2/doc/LLVMC-Enhancements.rst + some minor language/spelling fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56458
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 22 Sep 2008 19:51:58 +0000 (19:51 +0000)]
Refactor FP intrinisic setup. Per review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56456
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Mon, 22 Sep 2008 18:21:51 +0000 (18:21 +0000)]
CMake build system: support for parallel builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56453
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Sep 2008 18:19:24 +0000 (18:19 +0000)]
Per review feedback: Only perform
(srl x, (trunc (and y, c))) -> (srl x, (and (trunc y), c))
etc. when both "trunc" and "and" have single uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56452
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Mon, 22 Sep 2008 14:50:07 +0000 (14:50 +0000)]
Change the calling convention used when tail call optimization is enabled from CC_X86_32_TailCall to CC_X86_32_FastCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56436
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 22 Sep 2008 10:06:26 +0000 (10:06 +0000)]
Add bound checks in SmallVector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56432
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Mon, 22 Sep 2008 02:33:43 +0000 (02:33 +0000)]
add_partially_linked_object: Replaced nonexistent MESSAGE option in
add_custom_command with COMMENT. It was forcing unconditional command
execution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56425
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Mon, 22 Sep 2008 01:08:49 +0000 (01:08 +0000)]
Initial support for the CMake build system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 22 Sep 2008 00:44:35 +0000 (00:44 +0000)]
Add helper function to get a 32-bit floating point constant. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56418
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 21 Sep 2008 23:30:17 +0000 (23:30 +0000)]
explain what earlyclobber actually is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56415
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 21 Sep 2008 21:44:29 +0000 (21:44 +0000)]
Fold immediates into X86 shifts with fast isel. This generates:
sarl $3, %ecx
instead of:
movl $3, %ecx
sarl %cl, %edx
This shrinks fast isel 176.gcc by about 2000 instructions (.3%)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56413
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 21 Sep 2008 21:11:41 +0000 (21:11 +0000)]
Factor out code into HandleVirtRegDef, for consistency with
Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check
for register zero, and redundant checks for isPhysicalRegister.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56412
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 21 Sep 2008 21:01:49 +0000 (21:01 +0000)]
Instead of building a list and sorting it just to find a maximum element,
compute the maximum element directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56411
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 21 Sep 2008 20:43:24 +0000 (20:43 +0000)]
Fetch the starting index of the block when assigning intervals. This gets live-in indices
correct in the presence of things like EH labels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56410
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 21 Sep 2008 18:38:31 +0000 (18:38 +0000)]
don't print GlobalAddressSDNode's with an offset of zero as "foo0".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 20 Sep 2008 19:17:53 +0000 (19:17 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56391
91177308-0d34-0410-b5e6-
96231b3b80d8
Cedric Venet [Sat, 20 Sep 2008 18:02:18 +0000 (18:02 +0000)]
Update VS projects.
Change some class to struct for coherency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56389
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sat, 20 Sep 2008 17:45:21 +0000 (17:45 +0000)]
Shorten and rearrange data fields to save a word of memory.
Per review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56388
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sat, 20 Sep 2008 16:45:58 +0000 (16:45 +0000)]
Implement review feedback from Devang: make use
of mayReadFromMemory and mayWriteToMemory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56387
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sat, 20 Sep 2008 02:03:04 +0000 (02:03 +0000)]
Teach coalescer about earlyclobber bits.
Check bits for preferred register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56384
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 Sep 2008 01:28:05 +0000 (01:28 +0000)]
Fix PR2808. When regalloc runs out of register, it spill a physical register around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56381
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 Sep 2008 01:26:27 +0000 (01:26 +0000)]
Clean up the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56380
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 Sep 2008 00:13:45 +0000 (00:13 +0000)]
No need to print function stubs for Mac OS X 10.5 and up. Linker will handle it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56378
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 Sep 2008 00:13:08 +0000 (00:13 +0000)]
80 column violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56377
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 19 Sep 2008 23:42:04 +0000 (23:42 +0000)]
Fix a FastISel GlobalVariable CSE bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56376
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 19 Sep 2008 22:49:39 +0000 (22:49 +0000)]
Continue after removing the current MI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56372
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 19 Sep 2008 22:16:54 +0000 (22:16 +0000)]
Refactor X86SelectConstAddr, folding it into X86SelectAddress. This
results in better code for globals. Also, unbreak the local CSE for
GlobalValue stub loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56371
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 19 Sep 2008 18:52:31 +0000 (18:52 +0000)]
Make earlyclobber stuff work when virtual regs
have previously been assigned conflicting physreg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56364
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 19 Sep 2008 18:34:40 +0000 (18:34 +0000)]
Prevent warning about conversion from 64-bit to 32-bit by (yuck) casting...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56359
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 19 Sep 2008 18:09:19 +0000 (18:09 +0000)]
Now that ConstantSDNode doesn't hold an APInt,
use ARG_FLAGSSDNode as the most aligned node type,
as it contains an int64_t, which is 8-byte
aligned on mingw.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56358
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 19 Sep 2008 18:01:14 +0000 (18:01 +0000)]
Added static methods to APSInt: getMinValue and getMaxValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56355
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 19 Sep 2008 17:38:47 +0000 (17:38 +0000)]
Re-materalized definition instructions may be dead. Whack them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56352
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 19 Sep 2008 15:13:20 +0000 (15:13 +0000)]
backing out my last commit, it was not intended to go on the trunk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56349
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 19 Sep 2008 15:03:57 +0000 (15:03 +0000)]
first shot at removing Use::Val
untested, Use::swap() is definitely not done yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56348
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 14:34:36 +0000 (14:34 +0000)]
Turn on the AddReadAttrs pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56345
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 09:20:05 +0000 (09:20 +0000)]
Add test for improvement of readonly to readnone,
and non-demotion of readnone to readonly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56344
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 09:16:32 +0000 (09:16 +0000)]
Turn on these tests!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56343
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 08:23:44 +0000 (08:23 +0000)]
Remove the MarkModRef pass (use AddReadAttrs instead).
Unfortunately this means removing one regression test
of GlobalsModRef because I couldn't work out how to
perform it without MarkModRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56342
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 08:17:05 +0000 (08:17 +0000)]
Add a new pass AddReadAttrs which works out which functions
can get the readnone/readonly attributes, and gives them it.
The plan is to remove markmodref (which did the same thing
by querying GlobalsModRef) and delete the analogous
functionality from GlobalsModRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56341
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 08:01:57 +0000 (08:01 +0000)]
Test the callgraph directly for the missing edge.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56338
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Sep 2008 07:57:09 +0000 (07:57 +0000)]
Teach -callgraph to always print the callgraph (as the
description says it does), not just when -analyze is
used as well. This means printing to stderr, so adjust
some tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56337
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 19 Sep 2008 01:02:35 +0000 (01:02 +0000)]
Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis
and redo as linked list walk. Logic moved into RA.
Per review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56326
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 18 Sep 2008 23:45:14 +0000 (23:45 +0000)]
splitLoop does not handle split condition EQ.
Fixes PR 2805
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56321
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Sep 2008 23:23:44 +0000 (23:23 +0000)]
Address-mode folding for X86FastISel. It's pretty basic, but it
catches a fair number of common cases. Note that this currently
causes Fast-ISel to leave behind lots of dead instructions.
Those will be dealt with in subsequent commits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56320
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 18 Sep 2008 23:04:18 +0000 (23:04 +0000)]
Decrementing the iterator here could be wrong if the worklist is empty after the "erase".
Thanks to Ji Young Park for the patch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56316
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 18 Sep 2008 22:50:42 +0000 (22:50 +0000)]
Try to place hoisted instructions befoe icmp instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56315
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Sep 2008 22:38:47 +0000 (22:38 +0000)]
Somehow RegAllocLinearScan is keeping two pointers to MachineRegisterInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56314
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Sep 2008 18:26:43 +0000 (18:26 +0000)]
Simplify this code. The FastISel class has its own TD member.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56311
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Sep 2008 18:22:32 +0000 (18:22 +0000)]
Don't consider instructions with implicit physical register
defs to be necessarily live.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56310
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Thu, 18 Sep 2008 16:32:28 +0000 (16:32 +0000)]
Upgrade doxygen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56308
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Sep 2008 16:26:26 +0000 (16:26 +0000)]
Add a new "fast" scheduler. This is currently basically just a
copy of the BURRList scheduler, but with several parts ripped
out, such as backtracking, online topological sort maintenance
(needed by backtracking), the priority queue, and Sethi-Ullman
number computation and maintenance (needed by the priority
queue). As a result of all this, it generates somewhat lower
quality code, but that's its tradeoff for running about 30%
faster than list-burr in -fast mode in many cases.
This is somewhat experimental. Moving forward, major pieces of
this can be refactored with pieces in common with
ScheduleDAGRRList.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56307
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Sep 2008 07:54:21 +0000 (07:54 +0000)]
Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56303
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Sep 2008 07:28:19 +0000 (07:28 +0000)]
Duh. Default to ARMCC::AL (always).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56301
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Sep 2008 07:27:23 +0000 (07:27 +0000)]
Clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56300
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Sep 2008 07:24:33 +0000 (07:24 +0000)]
Cosmetic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56299
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 17 Sep 2008 21:18:49 +0000 (21:18 +0000)]
FastISel: For calls, prefer using the callee's address as a constant
over having it in a register. And wait until after checking type
legality before requesting that the callee address be placed in a
register. Also, fix support for calls with void return type.
This speeds up fast-isel isel time by about 15% and reduces
instruction counts by about 3% overall on certain testcases. It also
changes many indirect calls to direct calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56292
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 17 Sep 2008 21:13:11 +0000 (21:13 +0000)]
Add a bit to mark operands of asm's that conflict
with an earlyclobber operand elsewhere. Propagate
this bit and the earlyclobber bit through SDISel.
Change linear-scan RA not to allocate regs in a way
that conflicts with an earlyclobber. See also comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Sep 2008 18:36:25 +0000 (18:36 +0000)]
Unallocatable registers do not have live intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56287
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 17 Sep 2008 18:21:49 +0000 (18:21 +0000)]
Do not hoist instruction above branch condition. The instruction may use branch condition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56286
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 17 Sep 2008 17:53:47 +0000 (17:53 +0000)]
Do not ignore iv uses outside the loop.
This one slipped through cracks very well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56284
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 17 Sep 2008 16:01:39 +0000 (16:01 +0000)]
Fix comments, help messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56282
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 17 Sep 2008 15:25:49 +0000 (15:25 +0000)]
Don't worry about clobbering physical register defs that aren't used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56281
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Sep 2008 07:53:38 +0000 (07:53 +0000)]
Fix addrmode1 instruction encodings; fix bx_ret encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56277
91177308-0d34-0410-b5e6-
96231b3b80d8