Commit Graph

10359 Commits

Author SHA1 Message Date
Alkis Evlogimenos 6a35516dcc Add back machine code deleter pass until we get a MachineCode pass
that will be responsible for the creation of MachineFunctions and will
be required by all MachineFunctionPass passes.

llvm-svn: 11453
2004-02-15 00:03:15 +00:00
Alkis Evlogimenos fccb75d91e Modularize implementation of LeakDetector into a typed template
implementation class. This makes the code simpler and allows for more
types to be added easily. It also implements caching for generic
objects (it was only available for llvm objects).

llvm-svn: 11452
2004-02-14 23:33:39 +00:00
Chris Lattner 2e4acc0a73 Add support for the 'pop' instruction
llvm-svn: 11451
2004-02-14 21:06:02 +00:00
Chris Lattner f54cd1524d There is no reason to align the stack pointer if there are no callees of this
function!

llvm-svn: 11450
2004-02-14 20:11:07 +00:00
Chris Lattner 612ce0c47c There is no reason to align the stack pointer if there are no callees of this function!
llvm-svn: 11449
2004-02-14 20:10:59 +00:00
Chris Lattner 7dceed5ff9 The prologue/epilogue related method calls have no reason to return a value,
make them return void.

This allows us to avoid some costly MBB.size() calls

llvm-svn: 11448
2004-02-14 19:49:54 +00:00
Chris Lattner 72862f132c The prologue/epilogue related method calls have no reason to return a value,
make them return void.

llvm-svn: 11447
2004-02-14 19:49:05 +00:00
Chris Lattner 34c47d967e fix typeo
llvm-svn: 11446
2004-02-14 19:27:26 +00:00
Chris Lattner 9f75a55329 finegrainify namespacification, fix 80col prob
llvm-svn: 11445
2004-02-14 06:00:36 +00:00
Chris Lattner 0c48a03374 A target that doesn't support these intrinsics will still meet spec (the
intrinsic will always produce zero), but it will behave unexpectedly, so
warn like GCC does.

llvm-svn: 11444
2004-02-14 04:52:06 +00:00
Chris Lattner d6a39eaa70 Urg, right. These need an input value...
llvm-svn: 11443
2004-02-14 04:47:23 +00:00
Chris Lattner 2f49d5bb35 Codegen llvm.memset into rep stos[bwd]. Simplify code for llvm.memcpy
llvm-svn: 11442
2004-02-14 04:46:05 +00:00
Chris Lattner 8bed37595d add 'rep stos[bwd]' instructions
llvm-svn: 11441
2004-02-14 04:45:37 +00:00
Chris Lattner 2c0d1265dc new testcase for llvm.memset generation
llvm-svn: 11440
2004-02-14 04:26:15 +00:00
Chris Lattner 141ebb625d These should be mentioned
llvm-svn: 11439
2004-02-14 04:12:41 +00:00
Chris Lattner 3649c3aaf7 Document new intrinsics
llvm-svn: 11438
2004-02-14 04:08:35 +00:00
Chris Lattner 3646dadc6c builtin_return/frame_address now work
llvm-svn: 11437
2004-02-14 04:08:29 +00:00
Chris Lattner 451f1bca6f Testcase for builtin frame/return address
llvm-svn: 11436
2004-02-14 04:06:48 +00:00
Chris Lattner cd947e4b8b Test that the CFE compiles memset and bzero to llvm.memset
llvm-svn: 11435
2004-02-14 03:46:37 +00:00
Chris Lattner cf81fc70a4 Add a testcase for the frameaddress and returnaddress intrinsics.
llvm-svn: 11434
2004-02-14 02:55:47 +00:00
Chris Lattner f7c1088a36 Add support for the returnaddress and frameaddress intrinsics
llvm-svn: 11433
2004-02-14 02:55:36 +00:00
Chris Lattner 3c4bc03c8a Test that the code generator supports these intrinsics
llvm-svn: 11432
2004-02-14 02:51:40 +00:00
Chris Lattner dc632111bf Add llvm.memset/frameaddress/returnaddress intrinsics.
llvm-svn: 11431
2004-02-14 02:47:17 +00:00
Alkis Evlogimenos 5a92240270 Use newly added next() and prior() utility functions.
llvm-svn: 11430
2004-02-14 01:18:34 +00:00
Alkis Evlogimenos 7c6e4d5ae6 Add next() and prior() iterator utility functions. Unlike std::advance
they do not modify the passed iterator but return a copy.

next(myIt) returns copy of myIt incremented once
next(myIt, n) returns copy of myIt incremented n times
prior(myIt) returns copy of myIt decremented once
prior(myIt, n) returns copy of myIt decremented n times

While at it remove obsolete implementation of mapped_iterator.

llvm-svn: 11429
2004-02-14 01:17:28 +00:00
Chris Lattner a9c61b33c6 Updates for the C backend's movement
llvm-svn: 11428
2004-02-14 01:07:17 +00:00
Alkis Evlogimenos ddcb4ad53e Use std::numeric_limits<float>::infinity() instead of
std::numeric_limits<float>::max() for weighting preallocated
intervals.

llvm-svn: 11427
2004-02-14 00:44:07 +00:00
Chris Lattner 0997f207c2 Use intrinsic lowering like the rest of the backends. Get rid of crufty hacky
code that worked around problems in the mangler

llvm-svn: 11426
2004-02-14 00:31:10 +00:00
Chris Lattner 7934640709 Add method
llvm-svn: 11425
2004-02-14 00:30:31 +00:00
Chris Lattner 77687a9746 Fix the logic in the name mangler. If there are two symbols named 'X', and one
is external, make sure to mangle the *internal* one, not external one

llvm-svn: 11424
2004-02-14 00:30:23 +00:00
Misha Brukman 7c437d3226 Break a line that's over 80cols into two.
llvm-svn: 11423
2004-02-13 23:46:47 +00:00
Chris Lattner 7b5f374a18 There is no need to emit a shift if the size is constant, which is common
llvm-svn: 11420
2004-02-13 23:36:47 +00:00
Chris Lattner 23472a5a2a Make sure to provide a prototype for the cbackend
llvm-svn: 11419
2004-02-13 23:36:03 +00:00
Chris Lattner 7b65a0008d Update tests
llvm-svn: 11418
2004-02-13 23:33:17 +00:00
Chris Lattner 768fa7d206 Moved directory, update makefile
llvm-svn: 11417
2004-02-13 23:31:12 +00:00
Chris Lattner b24eb91e2c CBackend is no longer here
llvm-svn: 11416
2004-02-13 23:29:37 +00:00
Chris Lattner 1f9c6eb358 CBackend now lives here
llvm-svn: 11415
2004-02-13 23:29:20 +00:00
Chris Lattner c5a4641c21 Do not advertise our -c option anymore
llvm-svn: 11413
2004-02-13 23:24:46 +00:00
Chris Lattner 92849b7dc9 Mercilessly rip the cbackend out of llvm-dis. Leave a helpful error message
for those who have not heard the news.

llvm-svn: 11412
2004-02-13 23:22:40 +00:00
Chris Lattner c7dd48567f The cbackend has never had anything to do with llvm assembly writing
llvm-svn: 11411
2004-02-13 23:19:51 +00:00
Chris Lattner 3fba9dc096 Add support for -march=c
llvm-svn: 11410
2004-02-13 23:19:09 +00:00
Chris Lattner 0591bb5bc8 Convert the C backend into a target, for use with LLC. This allows us to use
the lowerallocations pass to eliminate malloc/free warnings and hackish code

llvm-svn: 11409
2004-02-13 23:18:48 +00:00
Chris Lattner 9fae109121 Change how we create the cwriter, and add a buttload of libraries that it now
needs.  This will be fixed shortly

llvm-svn: 11407
2004-02-13 23:01:14 +00:00
Chris Lattner b09176a1e2 Change access to the cwriter
llvm-svn: 11406
2004-02-13 23:00:45 +00:00
Chris Lattner d2b6e183e9 Make the cwriter use the lowerinvoke pass so that it can either use "disabled exceptions" or
"expensive exceptions" controlled by an option.  Also refactor and eliminate a bunch of cruft.
This is a temporary solution and causes millions of warnings to pour out of programs that use
exceptions, but it should fix the problem with sparc and the 'write' declaration (PR190).
Subsequent changes will make this stink much less

llvm-svn: 11405
2004-02-13 23:00:29 +00:00
Chris Lattner 067b6bb9b2 New testcase. The CFE should not generate illegal LLVM intrinsics, even if
the input program is horribly broken (like 126.gcc).

llvm-svn: 11401
2004-02-13 22:04:41 +00:00
John Criswell 3b4195f344 Added check for target machine endian-ness and put the result into
Makefile.config (ENDIAN variable is set to big or little).

llvm-svn: 11398
2004-02-13 21:57:29 +00:00
Chris Lattner d17e15eddd Add support for a bunch more functions
llvm-svn: 11395
2004-02-13 21:21:48 +00:00
Alkis Evlogimenos 8cdd0215bf Remove getAllocatedRegNum(). Use getReg() instead.
llvm-svn: 11393
2004-02-13 21:01:20 +00:00
Alkis Evlogimenos ef9d025ebe Mark MachineBasicBlock::operator[] deprecated.
llvm-svn: 11392
2004-02-13 20:05:56 +00:00