Chris Lattner
062cc18e39
inline a method.
...
llvm-svn: 77198
2009-07-27 16:27:32 +00:00
Chris Lattner
d44632b8ad
apparently we have "windows" and "coff", which are different(?)
...
llvm-svn: 77197
2009-07-27 16:22:39 +00:00
Chris Lattner
793cbcd529
sink text/data section creation down into the target-specific places that
...
should know about them. PECoff doesn't share these, and I want all sections
to be created by object-file-specific code.
llvm-svn: 77196
2009-07-27 16:20:58 +00:00
Dan Gohman
39c0d3b10a
Change the assembly syntax for nsw, nuw, and exact, putting them
...
after their associated opcodes rather than before. This makes them
a little easier to read.
llvm-svn: 77194
2009-07-27 16:11:46 +00:00
Dan Gohman
e999569f50
Fix wording in comments.
...
llvm-svn: 77193
2009-07-27 16:09:48 +00:00
Chris Lattner
255675d8b2
32-bit darwin targets support .literal16 too.
...
llvm-svn: 77191
2009-07-27 15:44:04 +00:00
Benjamin Kramer
706c0b2b97
Test commit: fix typo
...
llvm-svn: 77187
2009-07-27 09:06:52 +00:00
Chris Lattner
cd7d963b75
Eliminate getNamed/getUnnamedSection, adding a new and unified getOrCreateSection
...
instead.
llvm-svn: 77186
2009-07-27 06:17:14 +00:00
Chris Lattner
a2b00bdd7a
Eliminate SectionFlags, just embed a SectionKind into Section
...
instead and drive things based off of that.
llvm-svn: 77184
2009-07-27 05:32:16 +00:00
Evan Cheng
657ef082f0
If CPSR is modified but the def is dead, then it's ok to fold the load / store.
...
llvm-svn: 77182
2009-07-27 04:18:04 +00:00
Evan Cheng
674c4d47b9
Use t2LDRi12 and t2STRi12 to load / store to / from stack frames. Eliminate more getOpcode calls.
...
llvm-svn: 77181
2009-07-27 03:14:20 +00:00
Sanjiv Gupta
efd89b69e1
Generate a libcall for i8 multiply.
...
llvm-svn: 77179
2009-07-27 02:44:46 +00:00
Sanjiv Gupta
c1b29cb551
fixed incorrect lowering of ISD::SUB node. SUB has only one result value.
...
It wasn't caught during tests because we never got a sub generated, (i8 was always getting promoted to int, which in turn was broken into subc/sube). Though the optimizer leaves an i8 sub now.
llvm-svn: 77178
2009-07-27 02:26:06 +00:00
Evan Cheng
0cdbde1adf
Use the right instructions to copy between GPR and the more strictive tGPR classes. t2MOV does not match the RC requirements.
...
llvm-svn: 77175
2009-07-27 00:33:08 +00:00
Evan Cheng
61765ac517
Merge isLoadFromStackSlot into one since it behaves the same regardless of sub-target.
...
llvm-svn: 77174
2009-07-27 00:24:36 +00:00
Evan Cheng
b1ab426733
Just use a single isMoveInstr to catch all the cases.
...
llvm-svn: 77173
2009-07-27 00:05:15 +00:00
Evan Cheng
a6737e21cf
Rename tMOVhi2lor to tMOVgpr2tgpr. It's not moving from a high register to a low register. It's moving from a GPR register class to a more restrictive tGPR class. Also change tMOVlor2hir, and tMOVhir2hir.
...
llvm-svn: 77172
2009-07-26 23:59:01 +00:00
Eli Friedman
8008283cf9
Reorganize code a bit to reduce indentation. No visible functionality
...
change.
llvm-svn: 77171
2009-07-26 23:47:17 +00:00
Daniel Dunbar
dda1b60b4b
Don't use llvm_report_error in libSystem, this is a layering violation.
...
llvm-svn: 77169
2009-07-26 21:16:42 +00:00
Chris Lattner
0f4d60ca90
untangle a TargetAsmInfo hack where ELFTargetAsmInfo would create a
...
'unnamed' bss section, but some impls would want a named one. Since
they don't have consistent behavior, just make each target do their
own thing, instead of doing something "sortof common" then having
targets change immutable objects later.
llvm-svn: 77165
2009-07-26 19:23:28 +00:00
Evan Cheng
d555fec28c
Refactor. Get rid of a few more getOpcode() calls.
...
llvm-svn: 77164
2009-07-26 18:55:14 +00:00
Chris Lattner
12e2f1ca42
reduce indentation
...
llvm-svn: 77161
2009-07-26 18:08:15 +00:00
Sanjiv Gupta
cc8eb579b9
Fix the breakage caused by 76950.
...
PIC16 has special naming conventions for variables having section names specified via section attribute.
llvm-svn: 77153
2009-07-26 10:25:01 +00:00
Daniel Dunbar
4a36d5dcfd
Remove Value::getName{Start,End}, the last of the old Name APIs.
...
llvm-svn: 77152
2009-07-26 09:48:23 +00:00
Daniel Dunbar
d0f5c0b334
Make sure getName().data() is always null terminated.
...
llvm-svn: 77149
2009-07-26 09:22:02 +00:00
Daniel Dunbar
64abfd0337
Remove Value::getNameLen
...
llvm-svn: 77148
2009-07-26 08:34:35 +00:00
Nick Lewycky
c130e8eae9
Move MSILModule and MSILWriter into the 'llvm' namespace, instead of the 'MSIL'
...
namespace which could very well conflict with non-LLVM code.
Also clean up some spacing, remove an extra header.
llvm-svn: 77146
2009-07-26 08:16:51 +00:00
Daniel Dunbar
75a66c519b
Eliminate some uses of DOUT, cerr, and getNameStart().
...
llvm-svn: 77145
2009-07-26 07:49:05 +00:00
Chris Lattner
9104e8d808
remove a densemap from TargetAsmInfo that was uniquing the targetflags strings,
...
just use a smallstring instead.
llvm-svn: 77144
2009-07-26 07:33:58 +00:00
Chris Lattner
090aa4b8f4
simplify SectionFlagsForGlobal, even though I want to kill it.
...
llvm-svn: 77143
2009-07-26 07:17:39 +00:00
Chris Lattner
b508741de0
make SectionKind keep track of whether a global had an explicit
...
section specified for it or not.
llvm-svn: 77142
2009-07-26 07:14:28 +00:00
Chris Lattner
dfd1014214
simplify this code now that SectionKind knows if a global is weak or not.
...
llvm-svn: 77141
2009-07-26 07:07:01 +00:00
Chris Lattner
41570cf306
make SectionKind know whether a symbol is weak or not in addition
...
to its classification.
llvm-svn: 77140
2009-07-26 07:00:12 +00:00
Chris Lattner
61e4445f5a
rename Mergable -> Mergeable and Writable -> Writeable
...
llvm-svn: 77138
2009-07-26 06:48:26 +00:00
Chris Lattner
950bd8ba10
two files I missed in the last commit.
...
llvm-svn: 77137
2009-07-26 06:36:20 +00:00
Chris Lattner
e2a16438a6
remove a bunch of helper functions, just use SectionKind::get instead.
...
llvm-svn: 77135
2009-07-26 06:34:33 +00:00
Chris Lattner
1f709a74f6
simplify getSectionForMergableConstant to take a SectionKind.
...
llvm-svn: 77134
2009-07-26 06:26:55 +00:00
Chris Lattner
d44b68fbeb
precreate 4/8/16 byte mergable sections to simplify code.
...
llvm-svn: 77133
2009-07-26 06:16:11 +00:00
Chris Lattner
e8b2f94ce2
introduce specialized mergable const sectionkinds for elements of size 4/8/16 to
...
simplify targets.
llvm-svn: 77132
2009-07-26 06:11:33 +00:00
Chris Lattner
736f3d6eb5
improve the default impl of getSectionForMergableConstant by
...
putting readonly constants in the readonly section if we have one.
llvm-svn: 77131
2009-07-26 05:57:07 +00:00
Chris Lattner
e795c027fd
make elf targets correctly handle constant pool entries that require relocations.
...
llvm-svn: 77130
2009-07-26 05:55:20 +00:00
Chris Lattner
b3d6d59c10
Rearrange all the SectionKinds and structure them into a hierarchical
...
group instead of a bunch of random unrelated ideas. Provide predicates
to categorize a SectionKind into a group, and use them instead of
getKind() throughout the code.
This also renames a ton of SectionKinds to be more consistent and
evocative, and adds a huge number of comments on the enums so that
I will hopefully be able to remember how this stuff works long from
now.
llvm-svn: 77129
2009-07-26 05:44:20 +00:00
Daniel Dunbar
fe859a94dc
Sort list of targets in --version.
...
llvm-svn: 77127
2009-07-26 05:09:50 +00:00
Daniel Dunbar
a7a01acc7c
Factor commonality in triple match routines into helper template for registering
...
classes, and migrate existing targets over.
llvm-svn: 77126
2009-07-26 05:03:33 +00:00
Daniel Dunbar
1c59fa86e2
Oops, forgot XCore. Sorry XCore!
...
llvm-svn: 77125
2009-07-26 04:52:45 +00:00
Daniel Dunbar
6b705e3a64
Update for API change.
...
llvm-svn: 77124
2009-07-26 04:23:03 +00:00
Daniel Dunbar
5a9d56ab90
Update Triple to use StringRef/Twine based APIs.
...
- This is now shorter, simpler, safer, and more efficient, what a deal.
llvm-svn: 77119
2009-07-26 03:31:47 +00:00
Chris Lattner
5547fd80ad
put normal data into .data instead of .data.rel on elf systems.
...
llvm-svn: 77116
2009-07-26 03:06:11 +00:00
Daniel Dunbar
7917e05213
Remove unused header
...
llvm-svn: 77115
2009-07-26 02:23:52 +00:00
Daniel Dunbar
49987490c2
Kill Target specific ModuleMatchQuality stuff.
...
- This was overkill and inconsistently implemented.
llvm-svn: 77114
2009-07-26 02:22:58 +00:00
Daniel Dunbar
62e74f03c7
Add TargetRegistry::lookupTarget.
...
- This is a simplified mechanism which just looks up a target based on the
target triple, with a few additional flags.
- Remove getClosestStaticTargetForModule, the moral equivalent is now:
lookupTarget(Mod->getTargetTriple, true, false, ...);
- This no longer does the fuzzy matching with target data (based on endianness
and pointer width) that getClosestStaticTargetForModule was doing, but this
was deemed unnecessary.
llvm-svn: 77111
2009-07-26 02:12:58 +00:00
Chris Lattner
32fefa61d9
eliminate a pointless switch stmt.
...
llvm-svn: 77110
2009-07-26 01:44:55 +00:00
Chris Lattner
9cd489c7f1
finish simplifying DarwinTargetAsmInfo::SelectSectionForGlobal
...
for now. Make the section switching directives more consistent
by not including \n and including \t for them all.
llvm-svn: 77107
2009-07-26 01:24:18 +00:00
Daniel Dunbar
518cd20f61
Rewrite getName{Start,End,Len} in terms of getName(), instead of vice-versa.
...
llvm-svn: 77105
2009-07-26 00:51:56 +00:00
Chris Lattner
b95150b65a
simplify DarwinTargetAsmInfo::SelectSectionForGlobal a bit
...
and make it more aggressive, we now put:
const int G2 __attribute__((weak)) = 42;
into the text (readonly) segment like gcc, previously we put
it into the data (readwrite) segment.
llvm-svn: 77104
2009-07-26 00:51:36 +00:00
Daniel Dunbar
ddf2470263
Simplify.
...
llvm-svn: 77102
2009-07-26 00:42:33 +00:00
Bob Wilson
ec256c8938
Add support for ARM Neon VREV instructions.
...
Patch by Anton Korzh, with some modifications from me.
llvm-svn: 77101
2009-07-26 00:39:34 +00:00
Daniel Dunbar
3e85b410ab
Remove Value::setName(const char*, unsigned).
...
llvm-svn: 77100
2009-07-26 00:34:27 +00:00
Daniel Dunbar
c1ab70760a
Remove Value::setName(const char*).
...
- Split into a separate patch because there is a slight functionality change,
it is no longer valid to call setName(0), which was equivalent to
setName(""). I'm hoping no one depends on this...
llvm-svn: 77099
2009-07-26 00:17:14 +00:00
Daniel Dunbar
038a7f0d35
Remove Value::{isName, getNameRef}.
...
Also, change MDString to use a StringRef.
llvm-svn: 77098
2009-07-25 23:55:21 +00:00
Chris Lattner
fda0ca90c1
make SectionKind be a first-class pod struct instead of just
...
an enum.
llvm-svn: 77096
2009-07-25 23:21:55 +00:00
Reid Kleckner
b159a2bad6
Added a test and fixed a bug in BumpPtrAllocator relating to large alignment
...
values. Hopefully this fixes PR4622.
llvm-svn: 77088
2009-07-25 21:26:02 +00:00
Chris Lattner
15b3d2039f
this is (unfortunately) several changes mixed together:
...
1. Spell SectionFlags::Writeable as "Writable".
2. Add predicates for deriving SectionFlags from SectionKinds.
3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into
ELFTargetAsmInfo.
4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the
BSS bit set (the real fix for PR4619).
5. Fix isSuitableForBSS to not put globals with explicit sections
set in BSS (which was the reason #4 wasn't fixed earlier).
6. Remove my previous hack for PR4619.
llvm-svn: 77085
2009-07-25 18:57:34 +00:00
Chris Lattner
edbf2e64cb
document some invariants.
...
llvm-svn: 77084
2009-07-25 18:11:58 +00:00
Chris Lattner
cf7cc0ed7d
add the most expedient hack to fix PR4619, along with a testcase.
...
Thanks to Rafael for the great example.
llvm-svn: 77083
2009-07-25 17:57:37 +00:00
Dan Gohman
0781059503
SCEV objects are no longer reference-counted.
...
llvm-svn: 77080
2009-07-25 16:18:07 +00:00
Dan Gohman
c126330ef1
When attempting to sign-extend an addrec by interpreting
...
the step value as unsigned, the start value and the addrec
itself still need to be treated as signed.
llvm-svn: 77078
2009-07-25 16:03:30 +00:00
Andreas Bolka
72c14efff0
Convert DOUT to DEBUG.
...
llvm-svn: 77065
2009-07-25 12:19:58 +00:00
Daniel Dunbar
d699ffc2ac
Simplify JIT target selection.
...
- Instead of requiring targets to define a JIT quality match function, we just
have them specify if they support a JIT.
- Target selection for the JIT just gets the host triple and looks for the best
target which matches the triple and has a JIT.
llvm-svn: 77060
2009-07-25 10:09:50 +00:00
Sanjiv Gupta
b09f01d842
Mark attributes of return insn correctly. It was being assumed safe to delete in isSafeToDelete (a thing checked-in 76281).
...
llvm-svn: 77056
2009-07-25 07:48:53 +00:00
Daniel Dunbar
284fe09fe4
Add new helpers for registering targets.
...
- Less boilerplate == good.
llvm-svn: 77052
2009-07-25 06:49:55 +00:00
Daniel Dunbar
9f50ab3c49
Finish migrating VMCore to StringRef/Twine based APIs.
...
llvm-svn: 77051
2009-07-25 06:02:13 +00:00
Daniel Dunbar
251177c96e
Initial update to VMCore to use Twines for string arguments.
...
- The only meat here is in Value.{h,cpp} the rest is essential 'const
std::string &' -> 'const Twine &'.
llvm-svn: 77048
2009-07-25 04:41:11 +00:00
Eric Christopher
b5f8390b6c
Fix 80-col violations.
...
llvm-svn: 77045
2009-07-25 02:45:27 +00:00
Eric Christopher
df9c86fc26
Move ExtractElementInst to ::Create instead of new. Update all uses.
...
llvm-svn: 77044
2009-07-25 02:28:41 +00:00
Evan Cheng
0f605005c5
80 col violation.
...
llvm-svn: 77041
2009-07-25 01:55:25 +00:00
Dan Gohman
9a7deba67e
Convert a few more things to use raw_ostream.
...
llvm-svn: 77039
2009-07-25 01:43:01 +00:00
Evan Cheng
5468ef5230
Get rid of a couple of unnecessary getOpcode calls.
...
llvm-svn: 77035
2009-07-25 01:25:08 +00:00
Dan Gohman
13aabe2ba4
Teach ScalarEvolution to make use of no-overflow flags when
...
analyzing add recurrences.
llvm-svn: 77034
2009-07-25 01:22:26 +00:00
Dan Gohman
fdf1a11a27
Convert a few more uses of llvm/Support/Streams.h to raw_ostream.
...
llvm-svn: 77033
2009-07-25 01:13:51 +00:00
Dan Gohman
a823846bd1
Instead of eagerly creating new SCEVs to replace all SCEVs that are
...
affected after a PHI node has been analyzed, just remove affected
SCEVs from the Scalars map, so that they'll be (lazily) recreated as
needed. This avoids creating SCEV objects that aren't actually needed.
Also, rewrite the associated def-use walking code to be non-recursive
and to continue traversing past Instructions that don't have an
entry in the Scalars map.
llvm-svn: 77032
2009-07-25 01:13:03 +00:00
Dan Gohman
acc5d6eaae
Make AliasAnalysis and related classes use
...
getAnalysisIfAvailable<TargetData>().
llvm-svn: 77028
2009-07-25 00:48:42 +00:00
Evan Cheng
e3a37c42fb
Another TODO.
...
llvm-svn: 77026
2009-07-25 00:39:37 +00:00
Evan Cheng
d615e606c4
Change Thumb2 jumptable codegen to one that uses two level jumps:
...
Before:
adr r12, #LJTI3_0_0
ldr pc, [r12, +r0, lsl #2 ]
LJTI3_0_0:
.long LBB3_24
.long LBB3_30
.long LBB3_31
.long LBB3_32
After:
adr r12, #LJTI3_0_0
add pc, r12, +r0, lsl #2
LJTI3_0_0:
b.w LBB3_24
b.w LBB3_30
b.w LBB3_31
b.w LBB3_32
This has several advantages.
1. This will make it easier to optimize this to a TBB / TBH instruction +
(smaller) table.
2. This eliminate the need for ugly asm printer hack to force the address
into thumb addresses (bit 0 is one).
3. Same codegen for pic and non-pic.
4. This eliminate the need to align the table so constantpool island pass
won't have to over-estimate the size.
Based on my calculation, the later is probably slightly faster as well since
ldr pc with shifter address is very slow. That is, it should be a win as long
as the HW implementation can do a reasonable job of branch predict the second
branch.
llvm-svn: 77024
2009-07-25 00:33:29 +00:00
Daniel Dunbar
8496064116
More migration to raw_ostream, the water has dried up around the iostream hole.
...
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
2009-07-25 00:23:56 +00:00
Evan Cheng
cb63bf2810
ARM code emitter can't handle Thumb2 instructions yet. So don't even try.
...
llvm-svn: 77018
2009-07-25 00:13:11 +00:00
Daniel Dunbar
5bf752cc30
Fix build for GCC 4.0?
...
llvm-svn: 77016
2009-07-24 23:42:33 +00:00
Daniel Dunbar
8fe4f99da4
Fix compile with 4.4 (I hope?); PR4617.
...
llvm-svn: 77015
2009-07-24 23:23:46 +00:00
Andreas Bolka
4e68450b70
Forward-declare raw_ostream.
...
llvm-svn: 77014
2009-07-24 23:19:28 +00:00
Owen Anderson
cc33e89571
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come.
...
llvm-svn: 77011
2009-07-24 23:12:02 +00:00
Dan Gohman
b895f668cc
AliasAnalysis wants sizes in address-units, not bits.
...
llvm-svn: 77009
2009-07-24 23:01:30 +00:00
Eli Friedman
11e86150c4
Fix assert assembling zero-argument constant GEP.
...
There's still a strict-aliasing violation here, but I don't feel like
dealing with that right now...
llvm-svn: 77005
2009-07-24 21:56:17 +00:00
Evan Cheng
84cf748468
Uh. It would be useful to actually print the operand.
...
llvm-svn: 77004
2009-07-24 20:47:38 +00:00
Chris Lattner
50d9b68935
fix some predicates
...
llvm-svn: 76999
2009-07-24 20:27:11 +00:00
Chris Lattner
89b6f54999
change SectionKindForGlobal from being a public (and
...
previously virtual) function to being a static function
in the .cpp file.
llvm-svn: 76997
2009-07-24 20:14:10 +00:00
Evan Cheng
597bf41097
Disable my constant island pass optimization (to make use soimm more effectively). It caused infinite looping on lencod.
...
llvm-svn: 76995
2009-07-24 19:31:03 +00:00
Chris Lattner
3d63455016
make SectionKindForGlobal target independent, and therefore non-virtual.
...
It's classifications now include elf-specific discriminators. Targets
that don't have these features (like darwin and pecoff) simply treat
data.rel like data, etc.
llvm-svn: 76993
2009-07-24 19:15:47 +00:00
Evan Cheng
92376f5a32
Add a workaround for Darwin assembler bug where it's not setting the thumb bit in Thumb2 jumptable entries. We now pass Olden.
...
llvm-svn: 76991
2009-07-24 18:54:23 +00:00
Chris Lattner
5af94066ee
we already know the sectionkind when invoking SelectSectionForGlobal,
...
pass it in instead of recomputing it.
llvm-svn: 76990
2009-07-24 18:42:53 +00:00
Chris Lattner
cc951ce3cb
make SectionForGlobal non-virtual, add a hook for pic16 to do its "address=" hack.
...
llvm-svn: 76989
2009-07-24 18:34:27 +00:00
Dan Gohman
58619d5ad2
Fix this condition I accidentally inverted.
...
llvm-svn: 76988
2009-07-24 18:31:07 +00:00
Jakob Stoklund Olesen
5ca1bdc613
Add support for promoting SETCC operations.
...
llvm-svn: 76987
2009-07-24 18:22:59 +00:00
Evan Cheng
e01fec5446
Make sure thumb2 jumptable entries are aligned.
...
llvm-svn: 76986
2009-07-24 18:20:44 +00:00
Evan Cheng
c4221e9b04
Clean up.
...
llvm-svn: 76984
2009-07-24 18:20:16 +00:00
Evan Cheng
5bab9444f9
Replace use of std::set with SmallPtrSet.
...
llvm-svn: 76983
2009-07-24 18:19:46 +00:00
Dan Gohman
f1a01b8cc0
Convert several more passes to use getAnalysisIfAvailable<TargetData>()
...
instead of getAnalysis<TargetData>().
llvm-svn: 76982
2009-07-24 18:13:53 +00:00
Chris Lattner
a9c1641014
start refactoring pic16 section selection logic.
...
llvm-svn: 76977
2009-07-24 17:13:27 +00:00
Chris Lattner
37abb9f4ba
move ELF-specific code into ELFTargetAsmInfo.
...
llvm-svn: 76976
2009-07-24 17:02:17 +00:00
Chris Lattner
ad0925f556
tidy up
...
llvm-svn: 76975
2009-07-24 16:53:52 +00:00
Chris Lattner
bd89cc24bb
split the ELF-specific section flag inference-from-name code out
...
into its own helper function.
llvm-svn: 76974
2009-07-24 16:50:24 +00:00
Chris Lattner
6e4d35f825
make SectionFlagsForGlobal a private static function instead of a public
...
virtual one.
llvm-svn: 76973
2009-07-24 16:46:50 +00:00
Chris Lattner
6bb2030fa8
move a method up in the file, GV is always non-null, so remove a check.
...
llvm-svn: 76972
2009-07-24 16:44:01 +00:00
Chris Lattner
7d304b8e4e
There is no need to pass the name into lib/Target/TargetAsmInfo.cpp
...
when we have a global with no section explicitly specified.
llvm-svn: 76971
2009-07-24 16:40:45 +00:00
Chris Lattner
1ae0ab672a
remove a use of SectionFlagsForGlobal.
...
llvm-svn: 76970
2009-07-24 16:40:09 +00:00
Daniel Dunbar
b3d81314f6
Another getName -> getNameStr
...
llvm-svn: 76967
2009-07-24 12:21:08 +00:00
Daniel Dunbar
da47773d6a
More move to raw_ostream.
...
llvm-svn: 76966
2009-07-24 10:47:20 +00:00
Daniel Dunbar
339c88008f
Move more to raw_ostream, provide support for writing MachineBasicBlock,
...
LiveInterval, etc to raw_ostream.
llvm-svn: 76965
2009-07-24 10:36:58 +00:00
Daniel Dunbar
ea6955ce65
Move more to raw_ostream.
...
llvm-svn: 76964
2009-07-24 10:05:20 +00:00
Daniel Dunbar
1df20e31e5
Move to raw_ostream.
...
llvm-svn: 76963
2009-07-24 09:53:24 +00:00
Daniel Dunbar
e3fea713f1
Switch to getNameStr().
...
llvm-svn: 76962
2009-07-24 08:24:36 +00:00
Daniel Dunbar
076387bcc0
Allow llvm_report_error to accept a Twine.
...
llvm-svn: 76961
2009-07-24 07:58:10 +00:00
Eli Friedman
1be7dfb1aa
Remove unused member functions.
...
llvm-svn: 76960
2009-07-24 07:43:59 +00:00
Daniel Dunbar
bc0b1a1506
Update CMake
...
llvm-svn: 76957
2009-07-24 07:04:49 +00:00
Daniel Dunbar
6f78d7ac27
Add Twine ADT.
...
- Not currently used.
llvm-svn: 76956
2009-07-24 07:04:27 +00:00
Chris Lattner
d594b72797
hoist section name uniquing logic up to the top-level SectionForGlobal
...
implementation, eliminating a dupe.
llvm-svn: 76953
2009-07-24 05:10:25 +00:00
Chris Lattner
20d18ee0c4
reduce indentation
...
llvm-svn: 76951
2009-07-24 05:01:55 +00:00
Chris Lattner
259a7b2a4d
simplify code by making special case more obvious
...
llvm-svn: 76950
2009-07-24 04:59:43 +00:00
Chris Lattner
e21abfb5c1
the 'isWeakForLinker' code is common between functions and globals, hoist it
...
and simplify some other code.
llvm-svn: 76949
2009-07-24 04:52:38 +00:00
Chris Lattner
4bb9a9a7d3
Replace UniqueSectionForGlobal with getSectionPrefixForUniqueGlobal.
...
The later doesn't depend on any crazy LLVM IR stuff, and this
pulls the concatenation of prefix with GV name (the root problem behind
PR4584) out one level.
llvm-svn: 76948
2009-07-24 04:49:34 +00:00
Chris Lattner
a82421ce2f
document SectionFlags::Named better and make it more easily greppable by
...
eliminating isNamed.
llvm-svn: 76946
2009-07-24 04:26:19 +00:00
Chris Lattner
32c8463bb5
fix indentation.
...
llvm-svn: 76945
2009-07-24 04:11:40 +00:00
Chris Lattner
13611a24d8
use section flags more correctly.
...
llvm-svn: 76944
2009-07-24 04:08:17 +00:00
Daniel Dunbar
5895c5adf3
Switch to raw_ostream.
...
llvm-svn: 76943
2009-07-24 04:01:01 +00:00
Chris Lattner
9aa6064164
fix a mysterious and scary failure on test/CodeGen/X86/cstring.ll
...
llvm-svn: 76942
2009-07-24 03:55:48 +00:00
Chris Lattner
6339e5e786
reduce api exposure: clients shouldn't call SectionKindForGlobal directly.
...
llvm-svn: 76941
2009-07-24 03:49:17 +00:00
Chris Lattner
2cae10056c
make Constant::getRelocationInfo return an enum, as suggested by Duncan.
...
llvm-svn: 76938
2009-07-24 03:27:21 +00:00
Chris Lattner
b7fcec2e8c
remove more bits of small section support.
...
llvm-svn: 76937
2009-07-24 03:16:53 +00:00
Chris Lattner
f4c7765d30
remove more remnants of small section support.
...
llvm-svn: 76936
2009-07-24 03:14:35 +00:00
Chris Lattner
09511ed243
Remove SectionKind::Small*. This was only used on mips, and is apparently
...
a sad mistake that is regretted. :)
llvm-svn: 76935
2009-07-24 03:11:51 +00:00
Evan Cheng
d18a7fc185
Thumb2 should use the register scavenger.
...
llvm-svn: 76930
2009-07-24 01:05:51 +00:00
Dan Gohman
4c5b26a78e
Fix whitespace.
...
llvm-svn: 76929
2009-07-24 01:03:59 +00:00
Evan Cheng
d13b8f8353
FLDD, FLDS, FCPYD, FCPYS, FSTD, FSTS, VMOVD, VMOVQ maps to the same instructions on all sub-targets.
...
llvm-svn: 76925
2009-07-24 00:53:56 +00:00
Owen Anderson
be00de7dfe
Privatize the ConstantVector tables.
...
llvm-svn: 76922
2009-07-24 00:36:24 +00:00
Eric Christopher
c205a8da9d
Update insertps handling based on feedback. Move to a v4f32 style
...
to support vector arguments and scalar arguments correctly. Update
lowering and fix comment to refer to pinsr* instead of insertps.
llvm-svn: 76921
2009-07-24 00:33:09 +00:00
Dan Gohman
62c8b40b66
Remove the IA-64 backend.
...
llvm-svn: 76920
2009-07-24 00:30:09 +00:00
David Goodwin
85bcdffa4f
Correctly handle the Thumb-2 imm8 addrmode. Specialize frame index elimination more exactly for Thumb-2 to get better code gen.
...
llvm-svn: 76919
2009-07-24 00:16:18 +00:00
Sean Callanan
73b927334f
Added a 2+-byte NOP instruction to the Intel tables,
...
for the assembler/disassembler to use.
llvm-svn: 76914
2009-07-23 23:39:34 +00:00
Owen Anderson
d449007c92
Privatize the ConstantStruct table.
...
llvm-svn: 76912
2009-07-23 23:25:33 +00:00
David Greene
d40b2dbb34
Write space padding as one string to speed up comment printing.
...
llvm-svn: 76910
2009-07-23 23:21:10 +00:00
Evan Cheng
90f66e1c4e
Thumb2 does not allow the use of "pc" register as part of the load / store address.
...
llvm-svn: 76909
2009-07-23 23:09:51 +00:00
Reid Kleckner
3f197c850d
Re-committing r76828 with the JIT memory manager changes now that the build
...
bots like the BumpPtrAllocator changes.
llvm-svn: 76902
2009-07-23 21:46:56 +00:00
Chris Lattner
bbcb16a3eb
"fix" PR4612, which is a crash on:
...
%0 = malloc [3758096384 x i32]
The "malloc" instruction doesn't support 64-bits correctly (see PR715),
and should be removed. Victor is actively working on fixing this, in
the meantime just don't crash.
llvm-svn: 76899
2009-07-23 21:26:18 +00:00
Duncan Sands
f4838d90e4
Revert r75581: it causes massive breakage in the Ada
...
testsuite, due to exception handling not working
correctly. Maybe because the libgcc unwinder is
miscompiled - not sure, and I won't have time to
look into it before leaving on holiday. Note that
miscompilations of libgcc are not picked up by the
nightly testers, because they dynamically link with
libgcc, so pick up the system version rather than
the version built as part of llvm-gcc. This is a
nasty flaw in the nightly testers. (On the other
hand the Ada testsuite links with the just built
libgcc).
llvm-svn: 76895
2009-07-23 19:00:02 +00:00
Daniel Dunbar
4499c47ea4
Switch ValueSymbolTable to StringRef based API.
...
llvm-svn: 76894
2009-07-23 18:52:12 +00:00
Daniel Dunbar
00155504f8
Add llvm::Value::getNameRef, for help in API migration.
...
llvm-svn: 76893
2009-07-23 18:50:53 +00:00
Reid Kleckner
5a7816053e
Re-committing changes from r76825 to BumpPtrAllocator with a fix and tests for
...
an off-by-one error.
llvm-svn: 76891
2009-07-23 18:34:13 +00:00
Evan Cheng
f6b88eae82
Fix up ARM constant island pass for Thumb2.
...
Also fixed up code to fully use the SoImm field for ADR on ARM mode.
llvm-svn: 76890
2009-07-23 18:27:47 +00:00
Evan Cheng
8997f6bfc1
Since we have moved unified assembly, switch to ADR instruction instead of a the difficult-to-read .set + add syntax to materialize pc-relative address.
...
Turns out this also fixed a poor code selection on Thumb1. I have no idea why we were using a mov + add to do the same thing as ADR before.
llvm-svn: 76889
2009-07-23 18:26:03 +00:00
Daniel Dunbar
b5adc13728
Convert StringMap to using StringRef for its APIs.
...
- Yay for '-'s and simplifications!
- I kept StringMap::GetOrCreateValue for compatibility purposes, this can
eventually go away. Likewise the StringMapEntry Create functions still follow
the old style.
- NIFC.
llvm-svn: 76888
2009-07-23 18:17:34 +00:00
David Goodwin
f3c839e0b9
Fix frame index elimination to correctly handle thumb-2 addressing modes that don't allow negative offsets. During frame elimination convert *i12 opcode to a *i8 when necessary due to a negative offset.
...
llvm-svn: 76883
2009-07-23 17:06:46 +00:00
Andreas Bolka
f0462da445
Cache dependence computation using FoldingSet.
...
This introduces an LDA-internal DependencePair class. The intention is,
that this is a place where dependence testers can store various results
such as SCEVs describing conflicting iterations, breaking conditions,
distance/direction vectors, etc.
llvm-svn: 76877
2009-07-23 14:32:46 +00:00
Evan Cheng
c21e149091
80 col violation.
...
llvm-svn: 76872
2009-07-23 07:58:08 +00:00
Chris Lattner
2ed4453d0e
refactor a blob of code out to a new 'FoldOrOfFCmps' function and
...
simplify it.
llvm-svn: 76866
2009-07-23 05:46:22 +00:00
Lang Hames
85f4012739
For real this time: PHI Def & Kill tracking added to PHIElimination.
...
llvm-svn: 76865
2009-07-23 05:44:24 +00:00
Chris Lattner
c687344f0c
Make some existing optimizations that would only trigger on scalars
...
also apply to vectors. This allows us to compile this:
#include <emmintrin.h>
__m128i a(__m128 a, __m128 b) { return a==a & b==b; }
__m128i b(__m128 a, __m128 b) { return a!=a | b!=b; }
to:
_a:
cmpordps %xmm1, %xmm0
ret
_b:
cmpunordps %xmm1, %xmm0
ret
with clang instead of to a ton of horrible code.
llvm-svn: 76863
2009-07-23 05:32:17 +00:00
Chris Lattner
af6fdef894
refactor a bunch of code out into a helper function,
...
no functionality change.
llvm-svn: 76859
2009-07-23 05:14:02 +00:00
Lang Hames
1716e28365
Added PHI Def & Kill tracking to PHIElimination pass.
...
llvm-svn: 76849
2009-07-23 04:34:03 +00:00
Eric Christopher
c9299d5756
Support insertps via the intrinsic and add a couple of simple
...
testcases to make sure it's being generated.
llvm-svn: 76843
2009-07-23 02:22:41 +00:00
Sanjiv Gupta
d62bebab22
Do not call getMangledName on Intrinsics.
...
llvm-svn: 76842
2009-07-23 02:11:04 +00:00
Devang Patel
45ce5c2ac1
MDString
...
- Rename member function size(). New name is length().
- Store string beginning and length. Earlier it used to store string end.
llvm-svn: 76841
2009-07-23 02:00:51 +00:00
Andreas Bolka
b33d956e21
Minor cosmetics: indentation, formatting, naming.
...
llvm-svn: 76839
2009-07-23 01:57:06 +00:00
Reid Kleckner
6f9bf7f028
Reverting r76825 and r76828, since they caused clang runtime errors and some build failure involving memset.
...
llvm-svn: 76838
2009-07-23 01:40:54 +00:00
Zhongxing Xu
cd7c9007d1
add header for 'memset'.
...
llvm-svn: 76837
2009-07-23 01:38:47 +00:00
Devang Patel
63cece4454
Silence "uninitialized use" warning.
...
llvm-svn: 76836
2009-07-23 01:36:16 +00:00
Devang Patel
6b2162686a
Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into METADATA_BLOCK in bitcode file.
...
llvm-svn: 76834
2009-07-23 01:07:34 +00:00
Eric Christopher
973fc2d7ab
Fix error message for correct opcode.
...
llvm-svn: 76829
2009-07-23 01:01:32 +00:00
Reid Kleckner
b500f07edf
Make the JIT code emitter properly retry and ask for more memory when it runs
...
out of memory, and also make the default memory manager allocate more memory
when it runs out.
Also, switch function stubs and global data over to using the BumpPtrAllocator.
This makes it so the JIT no longer mmaps (or the equivalent on Windows) 16 MB
of memory, and instead allocates in 512K slabs. I suspect this size could go
lower, especially on embedded platforms, now that more slabs can be allocated.
llvm-svn: 76828
2009-07-23 00:49:59 +00:00
Reid Kleckner
4c892c05ec
Parameterize the BumpPtrAllocator over a slab allocator. It defaults to using
...
malloc, so there should be no functional changes to other code.
These changes are necessary since I have plans to use this allocator in the JIT
memory manager, and it needs a special allocator.
I also added some tests which helped me pinpoint some bugs.
llvm-svn: 76825
2009-07-23 00:30:41 +00:00
Chris Lattner
a3b58f4ecd
remove SectionFlags::Small: it is only used on Xcore, and we'll find
...
a better solution for it in the future.
llvm-svn: 76818
2009-07-22 23:27:22 +00:00
Dan Gohman
840e7f252e
x86 isel tweak: use lea (%reg,%reg) instead of lea (,%reg,2).
...
llvm-svn: 76817
2009-07-22 23:26:55 +00:00
Dan Gohman
001d777207
Rename the new unsigned and signed keywords to nuw and nsw,
...
which stand for no-unsigned-wrap and no-signed-wrap.
llvm-svn: 76810
2009-07-22 22:44:56 +00:00
David Greene
d1f9f45b05
Reorder if-else branches as suggested by Bill.
...
llvm-svn: 76808
2009-07-22 22:32:19 +00:00
David Goodwin
6fa63db9be
Fix typo in addrmode definition.
...
llvm-svn: 76806
2009-07-22 22:24:31 +00:00
Evan Cheng
4a77f28c47
Use getTargetConstant instead of getConstant since it's meant as an constant operand.
...
llvm-svn: 76803
2009-07-22 22:03:29 +00:00
David Greene
fede97eac6
Constify the key in Mi2IndexMap.
...
llvm-svn: 76801
2009-07-22 21:56:14 +00:00
Evan Cheng
88dbc00ca7
Ignore undef uses.
...
llvm-svn: 76799
2009-07-22 21:51:42 +00:00
Daniel Dunbar
3119e6a609
Switch some clients to Value::getName(), and other getName() user
...
simplification.
- NFC
llvm-svn: 76789
2009-07-22 21:33:09 +00:00
Devang Patel
963b3bc974
Fix indentation.
...
llvm-svn: 76787
2009-07-22 21:10:50 +00:00
Daniel Dunbar
0ff394b13d
Simplify some uses of Value::getName()
...
llvm-svn: 76786
2009-07-22 21:10:12 +00:00
Daniel Dunbar
51818313fe
Remove unnecessary store to temporary std::string.
...
llvm-svn: 76782
2009-07-22 20:46:46 +00:00
David Greene
76d89c51ce
Put comment printing under asm-verbose.
...
llvm-svn: 76780
2009-07-22 20:33:26 +00:00
Daniel Dunbar
b6a40026a7
Fix indentation.
...
llvm-svn: 76778
2009-07-22 20:26:37 +00:00
David Greene
7f92a15a4b
Make some changes suggested by Bill and Evan.
...
llvm-svn: 76775
2009-07-22 20:08:25 +00:00
Devang Patel
7b31d8224d
Fix thinko.
...
llvm-svn: 76769
2009-07-22 18:56:16 +00:00
Devang Patel
04a1939c08
Use isa<> instead of dyn_cast<>.
...
llvm-svn: 76767
2009-07-22 18:35:25 +00:00
Devang Patel
a047636be2
Add replaceAllUsesWith() to FE replace debug info constructs while building complex types.
...
llvm-svn: 76765
2009-07-22 18:23:44 +00:00
Devang Patel
5456f0ba29
Do not print "metadata" twice while printing MDString.
...
This fixes unittest failure.
llvm-svn: 76764
2009-07-22 18:10:23 +00:00
Evan Cheng
ae91b0616b
Eliminate a redudant check Eli pointed out.
...
llvm-svn: 76762
2009-07-22 18:08:05 +00:00
Sanjiv Gupta
2168098478
Fixed build warning. No functionality change.
...
llvm-svn: 76761
2009-07-22 17:58:47 +00:00
Devang Patel
5794cb80ad
Introduce MetadataBase, a base class for MDString and MDNode.
...
Derive MDString directly from MetadataBase.
Introduce new bitcode block to hold metadata.
llvm-svn: 76759
2009-07-22 17:43:22 +00:00