Misha Brukman
064820037b
HTML-escape '>' as '>' in sample C++ code.
...
llvm-svn: 70569
2009-05-01 20:40:51 +00:00
Bob Wilson
da90bf9e40
Allow CONCAT_VECTORS nodes to be legal or have custom lowering for some targets.
...
Changes to take advantage of this will come later.
llvm-svn: 70560
2009-05-01 17:55:32 +00:00
Dan Gohman
d57099a9eb
Actually insert inserted instructions into the InsertedValues map.
...
llvm-svn: 70557
2009-05-01 17:13:31 +00:00
Dan Gohman
daa3a9f38c
Add an accessor method to allow clients to test if a given expression
...
is associated with a SCEV expansion.
llvm-svn: 70556
2009-05-01 17:08:34 +00:00
Dan Gohman
bdc33dc988
Make RequiresTypeConversion canonicalize the types before calling the
...
target hooks canLosslesslyBitCastTo and isTruncateFree. This allows
targets to avoid worrying about handling all combinations of integer
and pointer types.
llvm-svn: 70555
2009-05-01 17:07:43 +00:00
Dan Gohman
0dc2b769b0
When printing a SCEVUnknown with pointer type, don't print an
...
artificial "ptrtoint", as it tends to clutter up complicated
expressions. The cast operators now print both source and
destination types, which is usually sufficient.
llvm-svn: 70554
2009-05-01 17:02:22 +00:00
Dan Gohman
bc336eab6e
Short-circuit inttoptr-ptrtoint constant expressions; these aren't
...
always folded by the regular constant folder because it doesn't have
TargetData information.
llvm-svn: 70553
2009-05-01 17:00:00 +00:00
Dan Gohman
ac4de6a92e
Make SCEVExpander::addInsertedValue able to accept Values, not just
...
Instructions.
llvm-svn: 70552
2009-05-01 16:58:31 +00:00
Dan Gohman
9dd3e99217
Minor whitespace fix.
...
llvm-svn: 70551
2009-05-01 16:56:32 +00:00
Dan Gohman
7eab4d2fa2
Fix an 80-column violation.
...
llvm-svn: 70550
2009-05-01 16:44:56 +00:00
Dan Gohman
24b592972d
When creating cast scevs, canonicalize the destination type. This
...
avoids duplicate scevs that differ only in type.
llvm-svn: 70549
2009-05-01 16:44:18 +00:00
Dan Gohman
908d546da3
Fix a compiler warning on hosts where uint64_t isn't unsigned long long.
...
llvm-svn: 70548
2009-05-01 16:33:33 +00:00
Dan Gohman
a55fce998e
Fix some code to work if TargetLowering is not available.
...
llvm-svn: 70546
2009-05-01 16:29:14 +00:00
Bill Wendling
2da6a65b62
Simplify more code and add timer stuff.
...
llvm-svn: 70539
2009-05-01 08:40:06 +00:00
Bill Wendling
0bab670012
Simplify more code.
...
llvm-svn: 70537
2009-05-01 08:35:12 +00:00
Torok Edwin
63c28133ae
hasSCEV() was declared in ScalarEvolution.h, but never defined. This must have
...
gone lost during the pImpl conversion.
llvm-svn: 70536
2009-05-01 08:33:47 +00:00
Bill Wendling
662dfea32e
Simplify some code.
...
llvm-svn: 70534
2009-05-01 08:32:14 +00:00
Bill Wendling
2f01fd9bf1
Fix whitespace. It was confusing me.
...
llvm-svn: 70533
2009-05-01 08:25:13 +00:00
Mike Stump
9581b0eb4c
Lets install the manual page with install-clang! Radar 6838692
...
llvm-svn: 70529
2009-05-01 01:47:55 +00:00
Evan Cheng
d6a780a181
Code clean up. Bye bye PhysRegTracker.
...
llvm-svn: 70524
2009-05-01 01:03:49 +00:00
Argyrios Kyrtzidis
123a0fb56f
Fix compilation for some targets other than x86.
...
llvm-svn: 70522
2009-04-30 23:50:26 +00:00
Stefanus Du Toit
a1923eed8c
Add a comment to refer to the section of the programmer's manual that explains what the pointer tagging in Use is for.
...
llvm-svn: 70521
2009-04-30 23:28:50 +00:00
Argyrios Kyrtzidis
9956976b76
Make DebugLoc independent of DwarfWriter.
...
-Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable*
-Remove DwarfWriter::getOrCreateSourceID
-Make necessary changes for the above (fix callsites, etc.)
llvm-svn: 70520
2009-04-30 23:22:31 +00:00
Argyrios Kyrtzidis
ad07acf07a
Set FnEnd in JITEmitter::finishFunction to point strictly to the end of function's machine code.
...
Don't include memory allocated for global variables during relocations resolution.
llvm-svn: 70517
2009-04-30 23:01:58 +00:00
Jeffrey Yasskin
7263dc71e2
Add a mention of TypeBuilder to the programmer's manual, and clean up the class
...
comment a bit.
llvm-svn: 70515
2009-04-30 22:33:41 +00:00
Jakob Stoklund Olesen
17d292db73
Join cross class copies using getCommonSubClass()
...
llvm-svn: 70513
2009-04-30 21:24:03 +00:00
Jakob Stoklund Olesen
bcb5d651a3
getCommonSubClass() - Calculate the largest common sub-class of two register
...
classes.
This is implemented as a function rather than a method on TargetRegisterClass
because it is symmetric in its arguments.
llvm-svn: 70512
2009-04-30 21:23:32 +00:00
Jakob Stoklund Olesen
fddd4c600b
Slightly change TableGen's definition of a register subclass.
...
A subclass is allowed to have a larger spill size than the superclass, and the
spill alignment must be a multiple of the superclass alignment. This causes
the following new subclass relations:
=== Alpha ===
F4RC -> F8RC
=== PPC ===
F4RC -> F8RC
=== SPU ===
R8C -> R16C -> R32C/R32FP -> R64C/R64FP -> GPRC/VECREG
=== X86 ===
FR32 -> FR64 -> VR128
RFP32 -> RFP64 -> RFP80
These subclass relations are consistent with the behaviour of -join-cross-class-copies.
llvm-svn: 70511
2009-04-30 21:22:44 +00:00
Dan Gohman
6d5f693ede
Add some comments, and tidy up some whitespace.
...
llvm-svn: 70510
2009-04-30 20:48:53 +00:00
Dan Gohman
3c9f4f765c
Extend ScalarEvolution's getBackedgeTakenCount to be able to
...
compute an upper-bound value for the trip count, in addition to
the actual trip count. Use this to allow getZeroExtendExpr and
getSignExtendExpr to fold casts in more cases.
This may eventually morph into a more general value-range
analysis capability; there are certainly plenty of places where
more complete value-range information would allow more folding.
llvm-svn: 70509
2009-04-30 20:47:05 +00:00
Evan Cheng
a4c868f1d4
Add a smarter heuristic to determine when to coalesce a virtual register with a physical one. More specifically, it avoid tying a virtual register in the loop with a physical register defined / used outside the loop. When it determines it's not profitable, it will use the physical register as the allocation preference instead.
...
This is *not* turned on by default. Testing indicates this is just as likely to pessimize code. The main issue seems to be allocation preference doesn't work effectively. That will change once I've taught register allocator "swapping".
llvm-svn: 70503
2009-04-30 18:39:57 +00:00
Bob Wilson
42101a805b
Rename the CurMultiClass formal parameter of TGParser::AddSubMultiClass
...
so that it doesn't shadow the instance variable of the same name.
Make the parameter names in method declarations match the definitions.
llvm-svn: 70502
2009-04-30 18:26:19 +00:00
Bob Wilson
e762abe486
Remove unnecessary "class" keywords.
...
llvm-svn: 70499
2009-04-30 17:46:20 +00:00
Bob Wilson
dd9b184c19
Change forward declaration of MultiClass to use the "struct" keyword instead
...
of "class", so that it matches the subsequent definition.
llvm-svn: 70498
2009-04-30 17:35:11 +00:00
Torok Edwin
1400b41bf1
Make dataflow iteration possible on Value*, not only on User*: df_ext_iterator<Value*, SmallPtrSet<const Value*, 16> >
...
llvm-svn: 70496
2009-04-30 17:09:22 +00:00
Dan Gohman
25d21786d3
Don't try to mix integers and pointers in an icmp instruction
...
in getSCEVAtScope.
llvm-svn: 70495
2009-04-30 16:40:30 +00:00
Nick Lewycky
9219a96e13
Oops! Missed a file in my last commit.
...
llvm-svn: 70491
2009-04-30 15:29:26 +00:00
Nick Lewycky
503cfd4ace
Allow a user of libLTO to specify the full pathname of the gcc executable to
...
run when assembling.
Wire this up to the gold plugin. You can now pass --plugin-opt gcc=/foo/bar/gcc
and it will run that gcc instead of looking for it on the path.
llvm-svn: 70490
2009-04-30 15:24:09 +00:00
Jay Foad
9768cabf4a
Move helper functions for optimizing division by constant into the APInt
...
class.
llvm-svn: 70488
2009-04-30 10:15:35 +00:00
Dan Gohman
8a0e27efb2
Set mayLoad on MOVZX32_NOREXrm8 too.
...
llvm-svn: 70466
2009-04-30 03:11:48 +00:00
Dan Gohman
fac9c52fd8
Fix ScalarEvolution::print to print a value for any Instruction with
...
a SCEVable type, not just integer types.
llvm-svn: 70463
2009-04-30 01:30:18 +00:00
Evan Cheng
b7d41a6680
Mark MOV8mr_NOREX and MOV8rm_NOREX as mayStore / mayLoad respectively.
...
llvm-svn: 70461
2009-04-30 00:58:57 +00:00
Bill Wendling
9a6ed80b64
Remove unused flags.
...
llvm-svn: 70459
2009-04-30 00:57:51 +00:00
Chris Lattner
794fb5b4b3
fix a regression handling indirect results: these need to be considered
...
memory operands otherwise the writebacks get lost when the inline asm
doesn't otherwise have side effects. This fixes rdar://6839427, though
clang really shouldn't generate these anymore.
llvm-svn: 70455
2009-04-30 00:48:50 +00:00
Bill Wendling
68ac27094d
Fix the JIT bindings for ocaml.
...
llvm-svn: 70454
2009-04-30 00:43:39 +00:00
Chris Lattner
25991c4e7d
remove progname which is never set. PR4085
...
llvm-svn: 70453
2009-04-30 00:24:33 +00:00
Bill Wendling
4df71cd268
Error out with bad optimization level specified.
...
llvm-svn: 70449
2009-04-29 23:46:43 +00:00
Bill Wendling
6e33661382
Remove LTO optimization level.
...
llvm-svn: 70445
2009-04-29 23:40:42 +00:00
Bill Wendling
40a162f75f
Instead of passing in an unsigned value for the optimization level, use an enum,
...
which better identifies what the optimization is doing. And is more flexible for
future uses.
llvm-svn: 70440
2009-04-29 23:29:43 +00:00
Bill Wendling
3f4c6171d1
Add support for a character after a command line option. Like '-Os'.
...
llvm-svn: 70437
2009-04-29 23:26:16 +00:00