summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Optimization suggested by Matthijs Kooijman.Duncan Sands2008-09-091-1/+2
| | | | llvm-svn: 55988
* Correct callgraph construction. It has two problems:Duncan Sands2008-09-091-34/+14
| | | | | | | | | | | | | | | | | | | (1) code left over from the days of ConstantPointerRef: if a use of a function is a GlobalValue then that is not considered a reason to add an edge from the external node, even though the use may be as an initializer for an externally visible global! There might be some point to this behaviour when the use is by an alias (though the code predated aliases by some centuries), but I think PR2782 is a better way of handling that. (2) If function F calls function G, and also G is a parameter to the call, then an F->G edge is not added to the callgraph. While this doesn't seem to matter much, adding such an edge makes the callgraph more regular. In addition, the new code should be faster as well as simpler. llvm-svn: 55987
* Check for type legality before materializing integer constants in fast isel. ↵Owen Anderson2008-09-091-0/+2
| | | | | | | | With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. llvm-svn: 55982
* Remove the code that protected FastISel from aborting inDan Gohman2008-09-091-5/+2
| | | | | | | | the case of loads, stores, and conditional branches. It can handle those now, so any that aren't handled should trigger the abort. llvm-svn: 55977
* Temporarily disable vector select in the bitcode reader. TheDan Gohman2008-09-091-1/+1
| | | | | | | | way it handles the type of the condition is breaking plain scalar select in the case that the value is a forward-reference. llvm-svn: 55976
* Fix a constant lowering bug. Now we can do load and store instructions with ↵Evan Cheng2008-09-092-28/+56
| | | | | | funky getelementptr embedded in the address operand. llvm-svn: 55975
* Fix logic for not emitting no-dead-strip for someDale Johannesen2008-09-095-2/+18
| | | | | | | | | | objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). llvm-svn: 55973
* Update generated files.Dan Gohman2008-09-093-324/+342
| | | | llvm-svn: 55972
* Fix simplifycfg crash in handing block merge.Devang Patel2008-09-091-1/+11
| | | | llvm-svn: 55971
* Extend the vcmp/fcmp LLVM IR instructions to take vectors as argumentsDan Gohman2008-09-094-17/+80
| | | | | | | | | | | | | | and, if so, to return a vector of boolean as a result; Extend the select LLVM IR instruction to allow you to specify a result type which is a vector of boolean, in which case the result will be an element-wise selection instead of choosing one vector or the other; and Update LangRef.html to describe these changes. This patch was contributed by Preston Gurd! llvm-svn: 55969
* Add support for floating-point calculations of log2 with limited precisions of 6Bill Wendling2008-09-091-76/+191
| | | | | | and 18. llvm-svn: 55968
* s/RemoveUnreachableBlocks/RemoveUnreachableBlocksFromFn/gDevang Patel2008-09-081-8/+9
| | | | llvm-svn: 55965
* Don't suppress no-dead-strip for used static functions.Dale Johannesen2008-09-081-1/+1
| | | | llvm-svn: 55962
* Reapply 55904: Unbreak and fix indentationAnton Korobeynikov2008-09-081-37/+33
| | | | llvm-svn: 55958
* Reapply 55901: Drop unused variableAnton Korobeynikov2008-09-081-1/+0
| | | | llvm-svn: 55957
* Reapply 55900: We do support EH on x86-64!Anton Korobeynikov2008-09-081-2/+1
| | | | llvm-svn: 55956
* Reapply 55899: First draft of EH support on x86/64-linuxAnton Korobeynikov2008-09-083-32/+60
| | | | | | | Now with fix, which prevents subtle codegen bug to trigger on darwin. No fix for bug though, it's still there. llvm-svn: 55955
* Reapply blindly reverted 55898: Implement FRAME_TO_ARGS_OFFSET for x86-64Anton Korobeynikov2008-09-081-11/+7
| | | | llvm-svn: 55954
* Fix a few I's that were meant to be renamed to BI's.Dan Gohman2008-09-081-2/+2
| | | | llvm-svn: 55942
* Reverting r55898 as well. This wasn't reverted in the original revert...Bill Wendling2008-09-081-7/+11
| | | | llvm-svn: 55938
* Accidental commit of partial 'stack canaries' codeBill Wendling2008-09-081-16/+0
| | | | llvm-svn: 55937
* Redo the 3 existing low-precision expansions toDale Johannesen2008-09-081-47/+38
| | | | | | | use float constants. An oversight by the numerics people who supplied this. llvm-svn: 55930
* Reverting r55898 to r55909. One of these patches was causing an ICE during ↵Bill Wendling2008-09-086-94/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the full bootstrap on Darwin: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_negdi2 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_negdi2_s.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_lshrdi3 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_lshrdi3_s.o ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. {standard input}:unknown:Undefined local symbol LBB21_11 {standard input}:unknown:Undefined local symbol LBB21_12 {standard input}:unknown:Undefined local symbol LBB21_13 {standard input}:unknown:Undefined local symbol LBB21_8 llvm-svn: 55928
* Handle calls which produce i1 results: promote to i8 but and it with 1 to ↵Evan Cheng2008-09-081-3/+18
| | | | | | get the low bit. llvm-svn: 55925
* Remove unused counter.Devang Patel2008-09-081-1/+0
| | | | llvm-svn: 55924
* In visitUREM, arrange for the temporary UDIV node to beDan Gohman2008-09-081-0/+1
| | | | | | revisited, consistent with the code in visitSREM. llvm-svn: 55923
* Add VISIBILITY_HIDDEN on SDISelAsmOperandInfoDaniel Dunbar2008-09-081-1/+1
| | | | llvm-svn: 55922
* Bitcasting two or from aggregate types is not permitted. UpdateDan Gohman2008-09-081-0/+6
| | | | | | LangRef.html, and teach the verifier to check bitcast instructions. llvm-svn: 55921
* i128 and f80 are implemented for x86-64 now.Dan Gohman2008-09-081-4/+0
| | | | llvm-svn: 55920
* Add AsmPrinter support for i128 and larger static initializer data.Dan Gohman2008-09-081-19/+36
| | | | llvm-svn: 55919
* Fix copy+pastos in comments.Dan Gohman2008-09-081-2/+2
| | | | llvm-svn: 55918
* Fix the string for ISD::UDIVREM.Dan Gohman2008-09-081-1/+1
| | | | llvm-svn: 55917
* Delete an unused variable.Dan Gohman2008-09-081-1/+0
| | | | llvm-svn: 55915
* Remove OptimizeIVType()Devang Patel2008-09-081-206/+0
| | | | llvm-svn: 55913
* Didn't mean to commit this change to how theDuncan Sands2008-09-081-8/+4
| | | | | | callgraph is printed. llvm-svn: 55912
* Avoid redefinition and nnbreak windows build.Evan Cheng2008-09-081-16/+16
| | | | llvm-svn: 55911
* Unbreak and fix indentationAnton Korobeynikov2008-09-081-37/+33
| | | | llvm-svn: 55904
* Drop unused variableAnton Korobeynikov2008-09-081-1/+0
| | | | llvm-svn: 55901
* We do support EH on x86-64!Anton Korobeynikov2008-09-081-2/+1
| | | | llvm-svn: 55900
* First draft of EH support on x86/64-linuxAnton Korobeynikov2008-09-083-32/+60
| | | | llvm-svn: 55899
* Implement FRAME_TO_ARGS_OFFSET for x86-64Anton Korobeynikov2008-09-081-11/+7
| | | | llvm-svn: 55898
* Update the callgraph correctly.Duncan Sands2008-09-081-1/+4
| | | | llvm-svn: 55896
* Update the callgraph correctly in ArgumentPromotion.Duncan Sands2008-09-081-0/+7
| | | | llvm-svn: 55895
* Reapply 55859. This doesn't change anything asDuncan Sands2008-09-083-27/+19
| | | | | | | long as the callgraph is correct. It checks for wrong callgraphs more strictly. llvm-svn: 55894
* Add fast isel physical register definition support.Evan Cheng2008-09-081-7/+64
| | | | llvm-svn: 55892
* Add support to extend call operands when needed. Enable x86 fastisel call ↵Evan Cheng2008-09-081-24/+33
| | | | | | support. llvm-svn: 55891
* Revert my previous change -- the subtraction of two constants was a no-opBill Wendling2008-09-081-1/+1
| | | | | | | | | before. This is taken care of in the selection DAG pass. In my opinion, this should be in one place or the other. I.e., it should probably be removed from the DAG combiner (along with the other arithmetic transformations on constants that are essentially no-ops). llvm-svn: 55889
* ConvertBill Wendling2008-09-071-1/+1
| | | | | | | | // fold (sub c1, c2) -> c1-c2 from a no-op into an actual transformation. llvm-svn: 55886
* Correct a comment and strip trailing whitespace.Duncan Sands2008-09-071-25/+25
| | | | llvm-svn: 55883
* Initial fastisel call support for C, Fast, and X86_FastCall calling ↵Evan Cheng2008-09-071-42/+308
| | | | | | | | conventions. It's meant to handle "simple" calls, i.e. no byval, structret, etc. It doesn't support multi-result returns either. Not yet turned on, it needs to support sext / zext of arguments and result. llvm-svn: 55882
OpenPOWER on IntegriCloud