Dan Gohman
8d536a33ff
Fix a bug that caused opt and other tools to silently ignore
...
invalid command-line options.
llvm-svn: 47523
2008-02-23 01:55:25 +00:00
Evan Cheng
97ca29e99a
No need recognize load from a fixed argument slot as re-materializable. LiveIntervalAnalysis already handles it as a special case.
...
llvm-svn: 47522
2008-02-23 01:47:44 +00:00
Devang Patel
4995a89a8d
Properly read and write bitcodes for multiple return values.
...
llvm-svn: 47521
2008-02-23 01:44:55 +00:00
Evan Cheng
95d3cb841d
Recognize loads of arguments as re-materializable first. Therefore if isReallyTriviallyReMaterializable() returns true it doesn't confuse it as a "normal" re-materializable instruction.
...
llvm-svn: 47520
2008-02-23 01:44:27 +00:00
Devang Patel
ac2ec94778
Regenerate.
...
llvm-svn: 47519
2008-02-23 01:17:37 +00:00
Devang Patel
56d28d9fe3
Use isa check instead of getTypeID() check.
...
llvm-svn: 47518
2008-02-23 01:17:17 +00:00
Ted Kremenek
bf1814f91f
Fixed buffer overflow reported by Argiris Kirtzidis.
...
llvm-svn: 47517
2008-02-23 01:11:40 +00:00
Devang Patel
a56b43b442
Remove unnecessary "inline" keywords.
...
llvm-svn: 47516
2008-02-23 01:11:02 +00:00
Devang Patel
03a99197aa
print getresult operand and its type directly.
...
llvm-svn: 47514
2008-02-23 01:04:26 +00:00
Evan Cheng
7c3a8d0056
Really. Why doesn't every arch support MMX?
...
llvm-svn: 47513
2008-02-23 00:56:14 +00:00
Devang Patel
63d29fccdf
Use dyn_cast instead of isa + cast.
...
llvm-svn: 47511
2008-02-23 00:47:00 +00:00
Evan Cheng
676068324b
Forgot this.
...
llvm-svn: 47510
2008-02-23 00:46:11 +00:00
Devang Patel
7cfd9e7634
Regenerate
...
llvm-svn: 47509
2008-02-23 00:38:56 +00:00
Devang Patel
f674975a65
To support multiple return values, now ret instruction supports multiple operands instead of one aggregate operand.
...
llvm-svn: 47508
2008-02-23 00:35:18 +00:00
Evan Cheng
166cb23f62
Fix spill weight updating bug.
...
llvm-svn: 47507
2008-02-23 00:33:04 +00:00
Dale Johannesen
ae08bdb4cf
Split ParameterAttributes.h, putting the complicated
...
stuff into ParamAttrsList.h. Per feedback from
ParamAttrs changes.
llvm-svn: 47504
2008-02-22 22:17:59 +00:00
Gordon Henriksen
17f8c537f0
Improving wording.
...
llvm-svn: 47503
2008-02-22 21:55:51 +00:00
Gordon Henriksen
9e3cdbcff0
Adding a note about IR generation to the LLVM FAQ.
...
llvm-svn: 47502
2008-02-22 20:58:29 +00:00
Evan Cheng
3b35d2a86c
Test case for PR2082.
...
llvm-svn: 47501
2008-02-22 20:38:49 +00:00
Evan Cheng
bb645b395c
Same isPhysRegAvailable bug as local register allocator.
...
llvm-svn: 47500
2008-02-22 20:31:32 +00:00
Evan Cheng
b8e7eb2b1b
Really really bad local register allocator bug. On X86, it was never using ESI, EDI, and EBP because of a bug in RALocal::isPhysRegAvailable(). For example, when
...
it checks if ESI is available, it then looks at registers aliases to ESI. SIL is marked -2 (not allocatable) but isPhysRegAvailable() incorrectly assumes it is in use and returns false for ESI.
llvm-svn: 47499
2008-02-22 20:30:53 +00:00
Evan Cheng
e24db258fe
Add debugging printfs.
...
llvm-svn: 47496
2008-02-22 19:57:06 +00:00
Devang Patel
f8efadbac0
Regenerate
...
llvm-svn: 47495
2008-02-22 19:31:30 +00:00
Devang Patel
92fdd3b97c
Use SymbolicValueRef to parse getresult operand
...
llvm-svn: 47494
2008-02-22 19:31:15 +00:00
Evan Cheng
c7ef6dc2db
Remove an invalid assertion now that there are implicit virtual register operands.
...
llvm-svn: 47493
2008-02-22 19:25:04 +00:00
Evan Cheng
fadafa2109
Make sure reload of implicit uses are issued before remat's.
...
llvm-svn: 47492
2008-02-22 19:22:06 +00:00
Devang Patel
f7d8b7679b
Add StripDeadPrototypes pass.
...
llvm-svn: 47488
2008-02-22 18:39:29 +00:00
Dale Johannesen
1d3737e5ed
Generated files for 47484.
...
llvm-svn: 47485
2008-02-22 17:50:51 +00:00
Dale Johannesen
a96eb3a1d8
Pass alignment on ByVal parameters, from FE, all
...
the way through. It is now used for codegen.
llvm-svn: 47484
2008-02-22 17:49:45 +00:00
Dale Johannesen
23a6f7fc1f
MMX vectors are passed 4-byte aligned.
...
llvm-svn: 47483
2008-02-22 17:47:28 +00:00
Anton Korobeynikov
fd4b209731
Add smart refcounting pointer class to ADT back (known before as IntrusiveSPtr.h).
...
llvm-svn: 47482
2008-02-22 17:26:05 +00:00
Chris Lattner
fd538f8ee9
fix some bugs in tutorial, patch by Erick Tryzelaar
...
llvm-svn: 47481
2008-02-22 17:09:39 +00:00
Anton Korobeynikov
5eaa8e774e
Unbreak build for VC2008. Patch by Argiris Kirtzidis!
...
llvm-svn: 47480
2008-02-22 10:11:21 +00:00
Anton Korobeynikov
ca51f9e5f0
Provide __main hooks for cygwin & mingw32
...
llvm-svn: 47479
2008-02-22 10:08:31 +00:00
Zhou Sheng
0742fbfedf
Fixed a typo.
...
llvm-svn: 47478
2008-02-22 10:00:35 +00:00
Evan Cheng
1b417c4d84
Allow re-materialization of pic load (controlled by -remat-pic-load for now).
...
llvm-svn: 47476
2008-02-22 09:25:47 +00:00
Evan Cheng
fa73e0c64e
Enable re-materialization of instructions which have virtual register operands if
...
the definition of the operand also reaches its uses.
llvm-svn: 47475
2008-02-22 09:24:50 +00:00
Chris Lattner
a64d4179d4
copy mmx values from/to memory with GPRs on x86-32
...
instead of with mmx registers. This horribleness is apparently
done by gcc to avoid having to insert emms in places that really
should have it. This is the second half of rdar://5741668.
llvm-svn: 47474
2008-02-22 05:18:04 +00:00
Devang Patel
066973767f
Print getresult instruction properly.
...
llvm-svn: 47473
2008-02-22 03:10:23 +00:00
Devang Patel
2754d59c53
Print ret instruction that returns aggregates.
...
llvm-svn: 47472
2008-02-22 02:50:49 +00:00
Devang Patel
8ae63af4b1
Read and write getresult.
...
llvm-svn: 47471
2008-02-22 02:49:49 +00:00
Chris Lattner
e70bc39d74
Start using GPR's to copy around mmx value instead of mmx regs.
...
GCC apparently does this, and code depends on not having to do
emms when this happens. This is x86-64 only so far, second half
should handle x86-32.
rdar://5741668
llvm-svn: 47470
2008-02-22 02:09:43 +00:00
Chris Lattner
7d3c05df5b
minor cleanups to LSBaseSDNode.
...
llvm-svn: 47469
2008-02-22 01:54:35 +00:00
Evan Cheng
e16e349623
Fix compiler warning.
...
llvm-svn: 47468
2008-02-22 01:48:00 +00:00
Dan Gohman
de80982418
Fix a regression in 403.gcc and 186.crafty introduced in 47383. To test
...
that a value is >= 32, check that all of the high bits are zero, not
just one or more.
llvm-svn: 47467
2008-02-22 01:12:31 +00:00
Devang Patel
c5dccfdd74
print getresult instruction.
...
llvm-svn: 47461
2008-02-21 23:02:20 +00:00
Devang Patel
298b5f1d6c
Use isa<> instead of getTypeID() to check StructType.
...
llvm-svn: 47460
2008-02-21 22:24:17 +00:00
Eli Friedman
123fc4b97d
A few minor updates, removing implemented stuff and adding a couple of
...
new things.
llvm-svn: 47458
2008-02-21 21:16:49 +00:00
Chris Lattner
b3c8d120dc
Make the clobber analysis a bit more smart: we only are careful about
...
early clobbers if the clobber list contains a *register* not some thing
like {memory}, {dirflag} etc.
llvm-svn: 47457
2008-02-21 20:54:31 +00:00
Chris Lattner
4f87f1c087
Treat clobber operands like early clobbers: if we have
...
any, we force sdisel to do all regalloc for an asm. This
leads to gross but correct codegen.
This fixes the rest of PR2078.
llvm-svn: 47454
2008-02-21 19:43:13 +00:00