summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* CollectorMetadata and Collector are rejiggered to get along withGordon Henriksen2007-12-112-111/+186
| | | | | | | per-function collector model. Collector is now the factory for CollectorMetadata, so the latter may be subclassed. llvm-svn: 44827
* Move TargetData::hostIsLittleEndian out of line, which means we Chris Lattner2007-12-111-0/+9
| | | | | | | | don't have to #include config.h in it. #including config.h breaks other projects that have their own autoconf stuff and try to #include the llvm headers. One obscure example is llvm-gcc. llvm-svn: 44825
* Adding Ocaml bindings for the bitreader as requested by SarahGordon Henriksen2007-12-111-0/+42
| | | | | | | | | | | | | | | | | | | Thompson. Usage should be something like this: open Llvm open Llvm_bitreader match read_bitcode_file fn with | Bitreader_failure msg -> prerr_endline msg | Bitreader_success m -> ...; dispose_module m Compile with: ocamlc llvm.cma llvm_bitreader.cma ocamlopt llvm.cmxa llvm_bitreader.cmxa llvm-svn: 44824
* Hey, English is not my native language :)Anton Korobeynikov2007-12-101-1/+1
| | | | llvm-svn: 44820
* Clarify the need of CFI() stuffAnton Korobeynikov2007-12-101-0/+3
| | | | llvm-svn: 44819
* Provide convenient way to disable CFI stuff for old/broken assemblers.Anton Korobeynikov2007-12-101-70/+76
| | | | | | Use it for Darwin. llvm-svn: 44818
* Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.Chris Lattner2007-12-104-33/+112
| | | | | | | | Reimplement the xform in Analysis/ConstantFolding.cpp where we can use targetdata to validate that it is safe. While I'm in there, fix some const correctness issues and generalize the interface to the "operand folder". llvm-svn: 44817
* Disable cfi directives for now, darwin does't support them.Chris Lattner2007-12-101-67/+70
| | | | | | | | | | | These should probably be something like: CFI(".cfi_def_cfa_offset 16\n") where CFI is defined to a noop on darwin and other platforms that don't support those directives. llvm-svn: 44803
* Make PruneEH update the nounwind/noreturn attributesDuncan Sands2007-12-102-76/+81
| | | | | | on functions as it calculates them. llvm-svn: 44802
* Fix PR1836: in the interpreter, read and write apintsDuncan Sands2007-12-101-24/+47
| | | | | | | | | | | | | | | | using the minimum possible number of bytes. For little endian targets run on little endian machines, apints are stored in memory from LSB to MSB as before. For big endian targets on big endian machines they are stored from MSB to LSB which wasn't always the case before (if the target and host endianness doesn't match values are stored according to the host's endianness). Doing this requires knowing the endianness of the host, which is determined when configuring - thanks go to Anton for this. Only having access to little endian machines I was unable to properly test the big endian part, which is also the most complicated... llvm-svn: 44796
* And finally annotate X86-64 version of callback. Anton Korobeynikov2007-12-101-24/+51
| | | | | | All bad stuff from SSE version is implicitely inherited :) llvm-svn: 44794
* Provide annotation for SSE version of callback. It's even moreAnton Korobeynikov2007-12-101-1/+26
| | | | | | broken, because doesn't mark xmm regs properly llvm-svn: 44793
* Annotate JIT callback function with call frame infromation. Anton Korobeynikov2007-12-101-1/+19
| | | | | | | This will allow us (theoretically) to unwind through JITer. The code wasn't verified, so I'm pretty sure offsets are wrong :) llvm-svn: 44792
* It looks like this has been broken for some time -Duncan Sands2007-12-101-2/+2
| | | | | | get it to compile. llvm-svn: 44791
* A little more progress on StrongPHIElimination, now that I have a better ↵Owen Anderson2007-12-101-11/+16
| | | | | | | | sense of how the CodeGen machinery works. llvm-svn: 44786
* Improve branch folding by recgonizing that explict successor relationships ↵Christopher Lamb2007-12-101-0/+5
| | | | | | impact the value of fall-through choices. llvm-svn: 44785
* Delete the CollectorNamePool if it should become empty.Gordon Henriksen2007-12-101-0/+4
| | | | llvm-svn: 44775
* Adding a collector name attribute to Function in the IR. These Gordon Henriksen2007-12-1011-1223/+1352
| | | | | | | | | | | | | | | | | | | | methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. llvm-svn: 44769
* Reverting dtor devirtualization patch.Gordon Henriksen2007-12-107-295/+197
| | | | | | | _sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed _sabre_: the vtable lives to fight another day llvm-svn: 44760
* fix some warnings.Chris Lattner2007-12-101-15/+12
| | | | llvm-svn: 44756
* Fix a big problem in the recent dtor refactoring work, now it passes ↵Chris Lattner2007-12-101-50/+14
| | | | | | 2007-11-19-InlineAsm.ll llvm-svn: 44755
* Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!Gordon Henriksen2007-12-097-197/+334
| | | | llvm-svn: 44747
* Duncan points out that the subtraction is unneeded since hte codeChris Lattner2007-12-091-1/+1
| | | | | | knows the vector is not pow2 llvm-svn: 44740
* Fix PR1782, patch by Wojtek Matyjewicz!Chris Lattner2007-12-091-4/+4
| | | | llvm-svn: 44733
* Add support for splitting the operand of a return instruction.Chris Lattner2007-12-093-53/+21
| | | | llvm-svn: 44728
* Reverting 44702. It wasn't correct to rename them.Bill Wendling2007-12-084-16/+16
| | | | llvm-svn: 44727
* add many new cases to SplitResult. SplitResult now handles all the cases ↵Chris Lattner2007-12-082-3/+178
| | | | | | that LegalizeDAG does. llvm-svn: 44726
* Implement splitting support for store, allowing us to compile:Chris Lattner2007-12-082-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | %f8 = type <8 x float> define void @test_f8(%f8* %P, %f8* %Q, %f8* %S) { %p = load %f8* %P ; <%f8> [#uses=1] %q = load %f8* %Q ; <%f8> [#uses=1] %R = add %f8 %p, %q ; <%f8> [#uses=1] store %f8 %R, %f8* %S ret void } into: _test_f8: movaps 16(%rdi), %xmm0 addps 16(%rsi), %xmm0 movaps (%rdi), %xmm1 addps (%rsi), %xmm1 movaps %xmm0, 16(%rdx) movaps %xmm1, (%rdx) ret llvm-svn: 44725
* implement vector splitting of load, undef, and binops.Chris Lattner2007-12-082-4/+88
| | | | llvm-svn: 44724
* implement some methods.Chris Lattner2007-12-082-2/+29
| | | | llvm-svn: 44723
* add scaffolding for splitting of vectors.Chris Lattner2007-12-083-4/+138
| | | | llvm-svn: 44722
* Remove dead file and directory.Chris Lattner2007-12-081-30/+0
| | | | llvm-svn: 44720
* reorganize header to separate into functional blocks.Chris Lattner2007-12-081-47/+59
| | | | llvm-svn: 44719
* split scalarization out to its own file.Chris Lattner2007-12-082-183/+202
| | | | llvm-svn: 44718
* Split expansion out into its own file.Chris Lattner2007-12-082-1144/+1166
| | | | llvm-svn: 44717
* Split promotion support out to its own file.Chris Lattner2007-12-082-472/+490
| | | | llvm-svn: 44716
* Rename LegalizeDAGTypes.cpp -> LegalizeTypes.cppChris Lattner2007-12-081-1/+0
| | | | llvm-svn: 44715
* Split the class definition of DAGTypeLegalizer out into a header.Chris Lattner2007-12-082-234/+256
| | | | | | Leave it visibility hidden, but not in an anon namespace. llvm-svn: 44714
* add #includeChris Lattner2007-12-081-0/+1
| | | | llvm-svn: 44710
* proper #include order.Chris Lattner2007-12-081-1/+1
| | | | llvm-svn: 44707
* Adding a StringPool data structure, which GC will use.Gordon Henriksen2007-12-081-0/+35
| | | | llvm-svn: 44705
* aesthetic changes, no functionality change. Evan, it's not clearChris Lattner2007-12-081-39/+41
| | | | | | | what 'Available' is, please add a comment near it and rename it if appropriate. llvm-svn: 44703
* Renaming:Bill Wendling2007-12-084-4/+4
| | | | | | | isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable llvm-svn: 44702
* Fix a significant code quality regression I introduced on PPC64 quite Chris Lattner2007-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a while ago. We now produce: _foo: mflr r0 std r0, 16(r1) ld r2, 16(r1) std r2, 0(r3) ld r0, 16(r1) mtlr r0 blr instead of: _foo: mflr r0 std r0, 16(r1) lis r0, 0 ori r0, r0, 16 ldx r2, r1, r0 std r2, 0(r3) ld r0, 16(r1) mtlr r0 blr for: void foo(void **X) { *X = __builtin_return_address(0); } on ppc64. llvm-svn: 44701
* implement __builtin_return_addr(0) on ppc.Chris Lattner2007-12-085-11/+58
| | | | llvm-svn: 44700
* refactor some code to avoid overloading the name 'usesLR' in Chris Lattner2007-12-083-12/+14
| | | | | | | different places to mean different things. Document what the one in PPCFunctionInfo means and when it is valid. llvm-svn: 44699
* Incorporated comments from Evan and Chris:Bill Wendling2007-12-081-58/+54
| | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html llvm-svn: 44696
* Fix several cache coherence bugs in MemDep/GVN that were found. Also add ↵Owen Anderson2007-12-082-25/+73
| | | | | | | | some (disabled) debugging code to make such problems easier to diagnose in the future, written by Duncan Sands. llvm-svn: 44695
* DohEvan Cheng2007-12-081-1/+1
| | | | llvm-svn: 44694
* Fix a compilation warning.Evan Cheng2007-12-081-1/+1
| | | | llvm-svn: 44692
OpenPOWER on IntegriCloud