21081 Commits

Author SHA1 Message Date
Jeff Cohen
7b4144a6d4 Fix VC++ warning that bools cannot be ORed.
llvm-svn: 24319
2005-11-12 00:59:39 +00:00
Jeff Cohen
566c6d987a Fix operator precedence bug caught by VC++.
llvm-svn: 24318
2005-11-12 00:59:01 +00:00
Chris Lattner
47891477c9 document sections
llvm-svn: 24317
2005-11-12 00:45:07 +00:00
Chris Lattner
ec86eee938 regenerate
llvm-svn: 24316
2005-11-12 00:11:49 +00:00
Chris Lattner
1e018a6238 add a token
llvm-svn: 24315
2005-11-12 00:11:30 +00:00
Chris Lattner
01374bd923 Parse section info
llvm-svn: 24314
2005-11-12 00:11:10 +00:00
Chris Lattner
5b42a5ea1a print section info
llvm-svn: 24313
2005-11-12 00:10:19 +00:00
Chris Lattner
63aaf38163 new testcase
llvm-svn: 24310
2005-11-12 00:10:02 +00:00
Chris Lattner
bcf40488a9 Add support for putting globals in a particular section
llvm-svn: 24309
2005-11-12 00:09:49 +00:00
Andrew Lenharth
483048fe7f fix yet more regressions
llvm-svn: 24308
2005-11-11 23:08:46 +00:00
Andrew Lenharth
b398a77753 generate chain result
llvm-svn: 24307
2005-11-11 23:02:55 +00:00
Andrew Lenharth
9b036b1bdb added a chain output
llvm-svn: 24306
2005-11-11 22:48:54 +00:00
Andrew Lenharth
d3c213f459 Fix a bunch more alpha regressions
llvm-svn: 24304
2005-11-11 19:52:25 +00:00
Andrew Lenharth
177491a9a2 prevent cse of readcyclecounter
llvm-svn: 24303
2005-11-11 19:02:54 +00:00
Andrew Lenharth
dca2f13e76 continued readcyclecounter support
llvm-svn: 24300
2005-11-11 16:47:30 +00:00
Andrew Lenharth
6600f4a1d0 Add support for a cycle counter intrinsic. As basically all processors have
this and have it in about the same form, I think this makes sense.
on X86, you do a RDTSC (64bit result, from any ring since the P5MMX)
on Alpha, you do a RDCC
on PPC, there is a sequence which may or may not work depending on how things
are setup by the OS.  Or something like that.  Maybe someone who knows PPC
can add support.  Something about the time base register.
on Sparc, you read %tick, which in some solaris versions (>=8) is readable by
userspace
on IA64 read ar.itc

So I think the ulong is justified since all of those are 64bit.
Support is slighly flaky on old chips (P5 and lower) and sometimes
depends on OS (PPC, Sparc).  But for modern OS/Hardware (aka this decade),
we should be ok.

I am still not sure what to do about lowering.  I can either see a lower to 0, to
gettimeofday (or the target os equivalent), or loudly complaining and refusing to
continue.

I am commiting an Alpha implementation.  I will add the X86 implementation if I
have to (I have use of it in the near future), but if someone who knows that
backend (and the funky multi-register results) better wants to add it, it would
take them a lot less time ;)

TODO: better lowering and legalizing, and support more platforms
llvm-svn: 24299
2005-11-11 16:45:18 +00:00
Jeff Cohen
191cdf9760 Fix some typos.
llvm-svn: 24298
2005-11-11 02:15:27 +00:00
Jeff Cohen
f1c9ea96cc Add new file to Visual Studio.
llvm-svn: 24297
2005-11-11 01:34:02 +00:00
Chris Lattner
77c3b97f5d Fix the optimized code handling of user asm strings
llvm-svn: 24296
2005-11-10 23:24:26 +00:00
Chris Lattner
e1435b7831 Make BB and CPI labels use the function number, not the function name as a
uniquing id.  This makes things happy when the function name is quoted,
preventing labels like LBB"foo"_2.

llvm-svn: 24295
2005-11-10 21:59:25 +00:00
Chris Lattner
32a3905ffc speedup the common case where nothing needs to be quoted
llvm-svn: 24294
2005-11-10 21:47:01 +00:00
Chris Lattner
8dfe3bb6be Allow per-character control over what target assemblers allow in symbol
names.  This also changes the default to allow all of "$_." in addition
to letters and numbers as symbol names.  If you don't want this, use
markCharUnacceptable to remove one of these or markCharAcceptable to add
to the set.  This corresponds with what GAS accepts by default.

Also, this includes some minor speedups

llvm-svn: 24293
2005-11-10 21:40:01 +00:00
Chris Lattner
e753f208af do not allow '.' in symbol names
llvm-svn: 24292
2005-11-10 21:39:29 +00:00
Chris Lattner
3a18b19a03 Allow per-character control over what target assemblers allow in symbol
names.  This also changes the default to allow all of "$_." in addition
to letters and numbers as symbol names.  If you don't want this, use
markCharUnacceptable to remove one of these or markCharAcceptable to add
to the set.  This corresponds with what GAS accepts by default.

llvm-svn: 24291
2005-11-10 21:39:12 +00:00
Andrew Lenharth
0b424575e0 the pain isn't gone unless the phinodes are spilled too
llvm-svn: 24288
2005-11-10 19:39:09 +00:00
Chris Lattner
fb66a38f13 Darwin supports quoted labels. This implements:
test/Regression/CodeGen/PowerPC/darwin-labels.ll

llvm-svn: 24287
2005-11-10 19:33:43 +00:00
Chris Lattner
b4ea0f4c7d Check that this compiles to a label with a space in it.
llvm-svn: 24284
2005-11-10 19:33:04 +00:00
Chris Lattner
2ba7f5a64d Add a new option for targets that accept quoted labels.
llvm-svn: 24283
2005-11-10 19:30:07 +00:00
Chris Lattner
6ce2a3d52e Remove M, which is dead. Eliminate a dead typedef. Add comments.
llvm-svn: 24282
2005-11-10 19:02:52 +00:00
Chris Lattner
6b9d854bad remove the M instance var
llvm-svn: 24281
2005-11-10 19:02:18 +00:00
Chris Lattner
5b0d543080 This method is no longer static
llvm-svn: 24280
2005-11-10 18:55:09 +00:00
Chris Lattner
e84264b303 Call this method with the object we have
llvm-svn: 24279
2005-11-10 18:53:25 +00:00
Chris Lattner
b6d5dcd181 nuke blank line
llvm-svn: 24278
2005-11-10 18:49:46 +00:00
Chris Lattner
6e7e5fab70 Make this more efficient of the common case where we are only mangling globals.
Do not mangle internal global names that do not collide with anything.

This gives us strings that now look like this:

__2E_str_1:                             ; '.str_1'
        .asciz  "foo"

instead of this:

l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

llvm-svn: 24277
2005-11-10 18:48:58 +00:00
Chris Lattner
4e377b5d6d minor interface changes.
llvm-svn: 24276
2005-11-10 18:46:57 +00:00
Chris Lattner
4868465cb6 Get rid of casts by #including the right header
llvm-svn: 24275
2005-11-10 18:36:17 +00:00
Chris Lattner
7ad799fbc1 Make the aix asm printer interface properly with the parent class
llvm-svn: 24274
2005-11-10 18:20:29 +00:00
Chris Lattner
aa86c10fe6 Compile C strings to:
l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

not:

        .align  0
l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

llvm-svn: 24273
2005-11-10 18:09:27 +00:00
Chris Lattner
88c7013f18 add support for .asciz, and enable it by default. If your target assemblerdoesn't support .asciz, just set AscizDirective to null in your asmprinter.
This compiles C strings to:

l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

instead of:

l1__2E_str_1:                           ; '.str_1'
        .ascii  "foo\000"

llvm-svn: 24272
2005-11-10 18:06:33 +00:00
Chris Lattner
bfa198b9f1 add support for .asciz, and enable it by default. If your target assembler
doesn't support .asciz, just set AscizDirective to null in your asmprinter.

This compiles C strings to:

l1__2E_str_1:                           ; '.str_1'
        .asciz  "foo"

instead of:

l1__2E_str_1:                           ; '.str_1'
        .ascii  "foo\000"

llvm-svn: 24271
2005-11-10 18:05:57 +00:00
Andrew Lenharth
b4169fe539 this works with backedges to the existing entry block alot better
llvm-svn: 24270
2005-11-10 17:35:34 +00:00
Andrew Lenharth
fb7763398b fix a bunch of regressions
llvm-svn: 24269
2005-11-10 16:59:55 +00:00
Andrew Lenharth
ddcbd92b23 needs to go here to apparently.
llvm-svn: 24268
2005-11-10 02:07:45 +00:00
Andrew Lenharth
03d60c3d09 The pass everyone has been waiting for!
Reg2Mem

for fun you can opt -reg2mem -mem2reg

llvm-svn: 24267
2005-11-10 01:58:38 +00:00
Chris Lattner
ce1390e70e Packed elements must be a power of two in size
llvm-svn: 24266
2005-11-10 01:44:22 +00:00
Chris Lattner
8a169a30ae Force vectors to be a power of two in size
llvm-svn: 24265
2005-11-10 01:42:43 +00:00
Chris Lattner
6a14d020a3 Force packed vectors to be a power of two in length.
llvm-svn: 24264
2005-11-10 01:40:59 +00:00
Chris Lattner
29585fd8c8 Switch the allnodes list from a vector of pointers to an ilist of nodes.This eliminates the vector, allows constant time removal of a node froma graph, and makes iteration over the all nodes list stable when adding
nodes to the graph.

llvm-svn: 24263
2005-11-09 23:47:37 +00:00
Chris Lattner
ce6f7839fe Switch the allnodes list from a vector of pointers to an ilist of nodes.
This eliminates the vector, allows constant time removal of a node from
a graph, and makes iteration over the all nodes list stable when adding
nodes to the graph.

llvm-svn: 24262
2005-11-09 23:46:43 +00:00
Chris Lattner
11d12a572e Refactor intrinsic lowering stuff out of visitCall
llvm-svn: 24261
2005-11-09 19:44:01 +00:00