Chris Lattner
0e5b79c174
Implement llvm.(frame|return)address(0) correctly. They are used by the LLVM JIT, among other
...
applications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11459 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 01:04:03 +00:00
Alkis Evlogimenos
b929bca027
Fix problem in DEBUG code. I could be pointing past the end and
...
dereferencing it causes an assertion error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11458 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 00:46:41 +00:00
Chris Lattner
1fda3700be
New code quality fix
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11457 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 00:23:15 +00:00
Chris Lattner
d31dd3278f
New testcase for PR237: [x86] wierd stack/frame pointer manipulation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11456 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 00:21:04 +00:00
Chris Lattner
96c3d2e2e7
Fix the 'have a framepointer' case, so that the frame pointer always points
...
to the old saved EBP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11455 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 00:15:37 +00:00
Chris Lattner
05d8350c12
Allow for fixed objects to reside in the local area, and if they don't to not
...
clobber them by allocating other objects in the same space!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11454 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 00:14:20 +00:00
Alkis Evlogimenos
c81efdc59c
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11453 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15 00:03:15 +00:00
Alkis Evlogimenos
b663d76f86
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11452 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 23:33:39 +00:00
Chris Lattner
3193556387
Add support for the 'pop' instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11451 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 21:06:02 +00:00
Chris Lattner
e9dd84ea8a
There is no reason to align the stack pointer if there are no callees of this
...
function!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11450 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 20:11:07 +00:00
Chris Lattner
93799292c1
There is no reason to align the stack pointer if there are no callees of this function!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11449 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 20:10:59 +00:00
Chris Lattner
bb07ef97cf
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11448 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 19:49:54 +00:00
Chris Lattner
8604e75721
The prologue/epilogue related method calls have no reason to return a value,
...
make them return void.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11447 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 19:49:05 +00:00
Chris Lattner
50c372b3d9
fix typeo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11446 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 19:27:26 +00:00
Chris Lattner
300d0eda6f
finegrainify namespacification, fix 80col prob
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11445 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 06:00:36 +00:00
Chris Lattner
cc42d2c3cc
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11444 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:52:06 +00:00
Chris Lattner
9f87a6ce6f
Urg, right. These need an input value...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11443 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:47:23 +00:00
Chris Lattner
2a0f224ce9
Codegen llvm.memset into rep stos[bwd]. Simplify code for llvm.memcpy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11442 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:46:05 +00:00
Chris Lattner
b89abef577
add 'rep stos[bwd]' instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11441 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:45:37 +00:00
Chris Lattner
e488d64eb2
new testcase for llvm.memset generation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11440 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:26:15 +00:00
Chris Lattner
3a51be17f3
These should be mentioned
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11439 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:12:41 +00:00
Chris Lattner
10610646cb
Document new intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11438 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:08:35 +00:00
Chris Lattner
25795bcfb7
builtin_return/frame_address now work
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11437 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:08:29 +00:00
Chris Lattner
208d080444
Testcase for builtin frame/return address
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 04:06:48 +00:00
Chris Lattner
90cf614aa5
Test that the CFE compiles memset and bzero to llvm.memset
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11435 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 03:46:37 +00:00
Chris Lattner
d64e0df32b
Add a testcase for the frameaddress and returnaddress intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11434 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 02:55:47 +00:00
Chris Lattner
fe1554a080
Add support for the returnaddress and frameaddress intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 02:55:36 +00:00
Chris Lattner
4a6f9a40b7
Test that the code generator supports these intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11432 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 02:51:40 +00:00
Chris Lattner
cf89908381
Add llvm.memset/frameaddress/returnaddress intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11431 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 02:47:17 +00:00
Alkis Evlogimenos
f81af21caf
Use newly added next() and prior() utility functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11430 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 01:18:34 +00:00
Alkis Evlogimenos
bc79471be1
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11429 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 01:17:28 +00:00
Chris Lattner
036e639623
Updates for the C backend's movement
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11428 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 01:07:17 +00:00
Alkis Evlogimenos
6ab5c15962
Use std::numeric_limits<float>::infinity() instead of
...
std::numeric_limits<float>::max() for weighting preallocated
intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11427 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 00:44:07 +00:00
Chris Lattner
4ef51373c4
Use intrinsic lowering like the rest of the backends. Get rid of crufty hacky
...
code that worked around problems in the mangler
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11426 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 00:31:10 +00:00
Chris Lattner
d11e647257
Add method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11425 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 00:30:31 +00:00
Chris Lattner
a6acb4f5fd
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11424 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14 00:30:23 +00:00
Misha Brukman
dc5feab7fd
Break a line that's over 80cols into two.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11423 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:46:47 +00:00
Chris Lattner
0712283e43
There is no need to emit a shift if the size is constant, which is common
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11420 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:36:47 +00:00
Chris Lattner
8ff9a8639a
Make sure to provide a prototype for the cbackend
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11419 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:36:03 +00:00
Chris Lattner
aa82943a1d
Update tests
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11418 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:33:17 +00:00
Chris Lattner
c01ab8f3e1
Moved directory, update makefile
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11417 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:31:12 +00:00
Chris Lattner
0f2aecef5a
CBackend is no longer here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11416 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:29:37 +00:00
Chris Lattner
76a92ae84a
CBackend now lives here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11415 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:29:20 +00:00
Chris Lattner
e8e7a188ec
Do not advertise our -c option anymore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11413 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:24:46 +00:00
Chris Lattner
2f1f8e0c4e
Mercilessly rip the cbackend out of llvm-dis. Leave a helpful error message
...
for those who have not heard the news.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11412 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:22:40 +00:00
Chris Lattner
8e3eb5542b
The cbackend has never had anything to do with llvm assembly writing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11411 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:19:51 +00:00
Chris Lattner
666d20a301
Add support for -march=c
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11410 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:19:09 +00:00
Chris Lattner
f31182a531
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11409 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:18:48 +00:00
Chris Lattner
055b3ff7bd
Change how we create the cwriter, and add a buttload of libraries that it now
...
needs. This will be fixed shortly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11407 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:01:14 +00:00
Chris Lattner
208d638fa4
Change access to the cwriter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11406 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 23:00:45 +00:00