summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Switch an assortment of maps, sets and vectors to more efficient versions,Chris Lattner2008-08-231-28/+25
| | | | | | patch contributed by m-s! llvm-svn: 55270
* get MachineConstantPool off std::ostream, onto raw_ostream. It would beChris Lattner2008-08-232-18/+23
| | | | | | really nice if someone converted MachineFunction::print to raw_ostream. llvm-svn: 55268
* minor cleanups.Chris Lattner2008-08-231-6/+9
| | | | llvm-svn: 55267
* Add raw_stream adaptors that write into an std::string and ↵Chris Lattner2008-08-231-0/+35
| | | | | | SmallVector/SmallString. llvm-svn: 55265
* Switch the asmprinter (.ll) and all the stuff it requires over toChris Lattner2008-08-2314-170/+201
| | | | | | | | | | | | | | | | | | | | | | | | use raw_ostream instead of std::ostream. Among other goodness, this speeds up llvm-dis of kc++ with a release build from 0.85s to 0.49s (88% faster). Other interesting changes: 1) This makes Value::print be non-virtual. 2) AP[S]Int and ConstantRange can no longer print to ostream directly, use raw_ostream instead. 3) This fixes a bug in raw_os_ostream where it didn't flush itself when destroyed. 4) This adds a new SDNode::print method, instead of only allowing "dump". A lot of APIs have both std::ostream and raw_ostream versions, it would be useful to go through and systematically anihilate the std::ostream versions. This passes dejagnu, but there may be minor fallout, plz let me know if so and I'll fix it. llvm-svn: 55263
* Add #includeChris Lattner2008-08-231-0/+1
| | | | llvm-svn: 55258
* add #includeChris Lattner2008-08-231-0/+1
| | | | llvm-svn: 55257
* add #includeChris Lattner2008-08-231-0/+1
| | | | llvm-svn: 55252
* add a simple mechanism for formatted output. This gives raw_ostream's Chris Lattner2008-08-231-0/+50
| | | | | | | | all the power and risk of fprintf format strings. Use them like this: OS << format("%10.4f", 42.0) << "\n" << format("%x", 42) << '\n'; llvm-svn: 55246
* Provide a 64 bit variant of mmx.maskmovq intrinsic lowering.Anton Korobeynikov2008-08-232-0/+7
| | | | | | Is there way to avoid explicit target check? llvm-svn: 55238
* Reverting r55227. This was causing the following failures in the regressionBill Wendling2008-08-231-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tests: Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/dg.exp ... FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcread-ptrptr.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcread-ptrptr.ll >& /dev/null child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-alloca.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-alloca.ll >& /dev/null child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-meta.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-meta.ll >& /dev/null child process exited abnormally FAIL: ndbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-ptrptr.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcroot-ptrptr.ll >& /dev/null child process exited abnormally FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcwrite-ptrptr.ll for PR1633 Failed with exit(1) at line 1 while running: not llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.HEAD.src/test/Verifier/gcwrite-ptrptr.ll >& /dev/null child process exited abnormally === Summary === # of expected passes 3021 # of unexpected failures 6 # of expected failures 16 make[1]: *** [check-local] Error 1 make: *** [check] Error 2 llvm-svn: 55233
* Add a new trivial -inst-namer pass which makes it possible to diff theChris Lattner2008-08-231-0/+49
| | | | | | before/after effects of a pass, crazy! llvm-svn: 55230
* Verify that the alignment argument to llvm.memcpy is a constantChris Lattner2008-08-231-0/+10
| | | | | | integer, PR2318. llvm-svn: 55228
* remove verification for gc intrinsic argument types. it was indented wrongChris Lattner2008-08-231-39/+0
| | | | | | and tblgen now knows intrinsic prototypes. llvm-svn: 55227
* Fix PR2423 by checking all indices for out of range access, not only Chris Lattner2008-08-231-35/+31
| | | | | | | indices that start with an array subscript. x->field[10000] is just as bad as (*X)[14][10000]. llvm-svn: 55226
* the bug was apparently fixed long ago, reenable the assertionChris Lattner2008-08-231-2/+1
| | | | llvm-svn: 55224
* Make MBBMap a DenseMap instead of a std::map.Dan Gohman2008-08-232-4/+4
| | | | llvm-svn: 55220
* Move the point at which FastISel taps into the SelectionDAGISelDan Gohman2008-08-2311-297/+319
| | | | | | | | | | | | | | | | | | process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219
* Avoid creating shift-by-zero SDNodes in the common case ofDan Gohman2008-08-231-9/+10
| | | | | | | i8* getelementptr. DAGCombine eliminates these, but this is a fairly common case. llvm-svn: 55214
* Move SelectionDAG's constructor out of line.Dan Gohman2008-08-231-0/+7
| | | | llvm-svn: 55212
* Add a clear() method to FoldingSet.Dan Gohman2008-08-231-12/+13
| | | | llvm-svn: 55210
* Reapply r55191 and r55192.Dan Gohman2008-08-222-9/+16
| | | | llvm-svn: 55205
* Make option variables static, so they won't cause nameclashAnton Korobeynikov2008-08-221-7/+10
| | | | llvm-svn: 55203
* Reverting r55190, r55191, and r55192. They broke the build with this error ↵Bill Wendling2008-08-224-32/+26
| | | | | | | | | | | | | | | message: {standard input}:17:bad register name `%sil' make[4]: *** [libgcc/./_addvsi3.o] Error 1 make[4]: *** Waiting for unfinished jobs.... {standard input}:23:bad register name `%dil' {standard input}:28:bad register name `%dil' make[4]: *** [libgcc/./_addvdi3.o] Error 1 {standard input}:18:bad register name `%sil' make[4]: *** [libgcc/./_subvsi3.o] Error 1 llvm-svn: 55200
* Fix the InsertBranch call.Dan Gohman2008-08-221-2/+1
| | | | llvm-svn: 55192
* Support non-fallthrough unconditional branches in FastISel.Dan Gohman2008-08-222-9/+17
| | | | llvm-svn: 55191
* Anyext tweaks for x86. When extloading a value to i32 or i64, chooseDan Gohman2008-08-222-17/+16
| | | | | | | | instructions that define the full 32 or 64-bit value. When anyexting from i8 to i16 or i32, it's not necessary to zero out the high portion of the register. llvm-svn: 55190
* Add FastISel support for PHINodes. Machine PHI nodesDan Gohman2008-08-221-0/+5
| | | | | | | are not yet updated properly, but that's a separate task. llvm-svn: 55187
* Implement __sync_synchronize on ppc32. Patch by Gary Benson.Dale Johannesen2008-08-223-3/+23
| | | | llvm-svn: 55186
* Fix SmallVector's size calculation so that a size of 0 isDan Gohman2008-08-222-3/+3
| | | | | | | handled correctly, and change a few SmallVector uses to use size 0 to more clearly reflect their intent. llvm-svn: 55181
* improve support for systems that need unistd.h to get STDOUT_FILENO.Chris Lattner2008-08-221-2/+10
| | | | | | Patch contributed by Bjorn Reese! llvm-svn: 55179
* consolidate DenseMapInfo implementations, and add one for std::pair.Chris Lattner2008-08-222-24/+0
| | | | | | Patch contributed by m-s. llvm-svn: 55167
* Rewrite ppc code generated for __sync_{bool|val}_compare_and_swapDale Johannesen2008-08-223-13/+19
| | | | | | | so that lwarx and stwcx are always executed the same number of times. This is important for performance, I'm told. llvm-svn: 55163
* Factor out the predicate check code from DAGISelEmitter.cppDan Gohman2008-08-222-4/+7
| | | | | | | | | and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. llvm-svn: 55156
* Remove tabs.Bill Wendling2008-08-221-8/+8
| | | | llvm-svn: 55154
* Temporarily reverting r55137. This was causing the bootstrap to go into anBill Wendling2008-08-211-7/+3
| | | | | | infinite loop. llvm-svn: 55149
* Fix write() when the string being written is larger than the buffer. This ↵Owen Anderson2008-08-211-0/+1
| | | | | | | | broke various ObjC testcases with very long symbol names. llvm-svn: 55148
* If part of the mask is "undef", then ignore it as we don't care what goes ↵Bill Wendling2008-08-211-0/+2
| | | | | | into it. llvm-svn: 55147
* Fix whitespace. No functionality change.Bill Wendling2008-08-211-6/+20
| | | | llvm-svn: 55146
* Accept NOT of a constant vector of int.Dale Johannesen2008-08-211-2/+4
| | | | llvm-svn: 55140
* Fix a number of byval / memcpy / memset related codegen issues.Evan Cheng2008-08-211-44/+46
| | | | | | | 1. x86-64 byval alignment should be max of 8 and alignment of type. Previously the code was not doing what the commit message was saying. 2. Do not use byte repeat move and store operations. These are slow. llvm-svn: 55139
* Move non-trivial methods out of line to avoid code-size bloat.Owen Anderson2008-08-211-0/+92
| | | | llvm-svn: 55138
* Fix ComputeMaskedBits to handle phis correctly. We need to take theDavid Greene2008-08-211-3/+7
| | | | | | minimum of the known zeros. llvm-svn: 55137
* Treat floating point ST1 the same as ST0 when lowering for a call resultMon P Wang2008-08-211-1/+2
| | | | llvm-svn: 55135
* Remove unneeded #include.Owen Anderson2008-08-211-1/+0
| | | | llvm-svn: 55134
* Add libcalls for the new rounding opcodes.Dan Gohman2008-08-212-0/+75
| | | | llvm-svn: 55133
* Add libm-oriented ISD opcodes for rounding operations.Dan Gohman2008-08-214-0/+25
| | | | llvm-svn: 55130
* Have FastISel skip the multiply by 1 for getelementptr on i8*.Dan Gohman2008-08-211-4/+2
| | | | llvm-svn: 55129
* Allow inline asm nodes with empty bodies inside JIT.Anton Korobeynikov2008-08-211-2/+6
| | | | | | | This unbreaks explicit reg vars inside JIT, which are implemented in such hacky way :) llvm-svn: 55128
* Switch from an O(n) method to an O(1) method for changing non-constantChris Lattner2008-08-211-4/+5
| | | | | | operands. llvm-svn: 55127
OpenPOWER on IntegriCloud