summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* It seems the llvm::OStream class does not handle stream manipulators.John Criswell2006-12-111-7/+7
| | | | | | For now, just grab the stream and perform the output on it directly. llvm-svn: 32441
* Revert changes that broke oggenc on ppcChris Lattner2006-12-111-14/+9
| | | | llvm-svn: 32440
* Missing opcode.Jim Laskey2006-12-111-0/+1
| | | | llvm-svn: 32439
* Implement correct constant folding of bitcast. This implementsChris Lattner2006-12-111-15/+33
| | | | | | | Transforms/ConstProp/bitcast.ll and fixes SingleSource/Regression/C/2003-10-12-GlobalVarInitializers llvm-svn: 32438
* Layout proper frame for ppc64.Jim Laskey2006-12-111-28/+38
| | | | llvm-svn: 32436
* Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal ↵Evan Cheng2006-12-111-9/+12
| | | | | | type. llvm-svn: 32434
* f32 / f64 node is expanded to one i32 / i64 node.Evan Cheng2006-12-111-5/+12
| | | | llvm-svn: 32433
* Clean up some bad code.Evan Cheng2006-12-111-5/+3
| | | | llvm-svn: 32432
* Move something that should be in the dag combiner from the legalizer to theNate Begeman2006-12-112-17/+15
| | | | | | dag combiner. llvm-svn: 32431
* Properly mangles symbol table namesNate Begeman2006-12-112-139/+362
| | | | | | | | | Supports constant pools Supports relocations to jump tables Supports relocations within the data segment (global = address of global) Allocates memory in a non-hacky for all non-code objects. llvm-svn: 32430
* fix typoChris Lattner2006-12-111-1/+1
| | | | llvm-svn: 32428
* Update note, with the SROA change, we now produce:Chris Lattner2006-12-111-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | _pairtest: movl 8(%esp), %eax movl 4(%esp), %ecx movd %eax, %xmm0 movd %ecx, %xmm1 addss %xmm0, %xmm1 movl 12(%esp), %eax movss %xmm1, (%eax) ret instead of: _pairtest: subl $12, %esp movl 20(%esp), %eax movl %eax, 4(%esp) movl 16(%esp), %eax movl %eax, (%esp) movss (%esp), %xmm0 addss 4(%esp), %xmm0 movl 24(%esp), %eax movss %xmm0, (%eax) addl $12, %esp ret llvm-svn: 32427
* trunc to integer, not to FP.Chris Lattner2006-12-111-2/+11
| | | | llvm-svn: 32426
* this is doneChris Lattner2006-12-111-27/+0
| | | | llvm-svn: 32424
* Evan implemented the machineinstr improvements.Chris Lattner2006-12-111-46/+23
| | | | | | | | The rot example works if the type is cast to ubyte. Move sroa examples together and upgrade them to HEAD syntax. llvm-svn: 32423
* implement promotion of unions containing two packed types of the same width.Chris Lattner2006-12-111-15/+30
| | | | | | This implements Transforms/ScalarRepl/union-packed.ll llvm-svn: 32422
* clarify some comments, simplify some checks, fix:Chris Lattner2006-12-111-7/+7
| | | | | | Regression/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll llvm-svn: 32420
* * Eliminate calls to CastInst::createInferredCast.Chris Lattner2006-12-101-40/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add support for promoting unions with fp values in them. This produces our new int<->fp bitcast instructions, implementing Transforms/ScalarRepl/union-fp-int.ll As an example, this allows us to compile this: union intfloat { int i; float f; }; float invsqrt(const float arg_x) { union intfloat x = { .f = arg_x }; const float xhalf = arg_x * 0.5f; x.i = 0x5f3759df - (x.i >> 1); return x.f * (1.5f - xhalf * x.f * x.f); } into: _invsqrt: movss 4(%esp), %xmm0 movd %xmm0, %eax sarl %eax movl $1597463007, %ecx subl %eax, %ecx movd %ecx, %xmm1 mulss LCPI1_0, %xmm0 mulss %xmm1, %xmm0 movss LCPI1_1, %xmm2 mulss %xmm1, %xmm0 subss %xmm0, %xmm2 movl 8(%esp), %eax mulss %xmm2, %xmm1 movss %xmm1, (%eax) ret instead of: _invsqrt: subl $4, %esp movss 8(%esp), %xmm0 movss %xmm0, (%esp) movl (%esp), %eax movl $1597463007, %ecx sarl %eax subl %eax, %ecx movl %ecx, (%esp) mulss LCPI1_0, %xmm0 movss (%esp), %xmm1 mulss %xmm1, %xmm0 mulss %xmm1, %xmm0 movss LCPI1_1, %xmm2 subss %xmm0, %xmm2 mulss %xmm2, %xmm1 movl 12(%esp), %eax movss %xmm1, (%eax) addl $4, %esp ret llvm-svn: 32418
* Cleaned setjmp/longjmp lowering interfaces. Now we're producing rightAnton Korobeynikov2006-12-105-13/+20
| | | | | | | code (both asm & cbe) for Mingw32 target. Removed autoconf checks for underscored versions of setjmp/longjmp. llvm-svn: 32415
* Reverting until finding the cause of secondary bugs.Jim Laskey2006-12-101-33/+28
| | | | llvm-svn: 32413
* __PPC64CompilationCallback code was allowing registers to be clobbered by stub.Jim Laskey2006-12-101-28/+33
| | | | llvm-svn: 32412
* fix PR1039 by making timing info be destroyed by llvm_shutdown, not byChris Lattner2006-12-102-4/+5
| | | | | | static dtors. llvm-svn: 32411
* .align is in bitsRafael Espindola2006-12-101-1/+1
| | | | | | | .comm is in bytes :-( llvm-svn: 32408
* fix test/Regression/CodeGen/X86/weak.llRafael Espindola2006-12-091-1/+1
| | | | | | if a variable has no initialization, I->getInitializer() will fail llvm-svn: 32407
* Preliminary soft float support.Evan Cheng2006-12-093-19/+74
| | | | llvm-svn: 32394
* Added option -soft-float to generate SW fp library calls instead of fp ↵Evan Cheng2006-12-091-0/+7
| | | | | | instructions. llvm-svn: 32393
* Analysis resolver now manages AnalysisImpls for the given patch.Devang Patel2006-12-091-1/+2
| | | | llvm-svn: 32389
* Top level pass manager keeps track of other managers, so this can beDevang Patel2006-12-091-8/+1
| | | | | | removed now. llvm-svn: 32388
* Use analysis resolver to find the info.Devang Patel2006-12-091-8/+11
| | | | llvm-svn: 32387
* Do not drop ImmutablePasses on the floor.Devang Patel2006-12-081-7/+9
| | | | llvm-svn: 32386
* Set AnalysisResolver for the passes when they are inserted intoDevang Patel2006-12-081-0/+29
| | | | | | pass manager queuer. llvm-svn: 32385
* Add AnalysisResolver_New. It is a replacement for existingDevang Patel2006-12-081-0/+8
| | | | | | AnalysisResolver. llvm-svn: 32383
* Keep track of other pass managers, that are not directly managed byDevang Patel2006-12-081-5/+19
| | | | | | top level manager. Use this info to findAnalysisPass. llvm-svn: 32382
* Implement top level FunctionPassManager::run(Function &F)Devang Patel2006-12-081-1/+15
| | | | llvm-svn: 32381
* Do not keep yet another list of pass managers in PassManagerImpl_New.Devang Patel2006-12-081-8/+9
| | | | | | Use one provided by toplevel manager. llvm-svn: 32380
* Remove unused schedulePass() parameter.Devang Patel2006-12-081-5/+5
| | | | llvm-svn: 32379
* Remove unused getAnalysisPass and getAnalysisPassFromManagerDevang Patel2006-12-081-76/+0
| | | | llvm-svn: 32378
* Implement PMTopLevel::findAnalysisPass() andDevang Patel2006-12-081-6/+71
| | | | | | PMDataManager::findAnalysisPass() llvm-svn: 32377
* %progbits not @progbitsRafael Espindola2006-12-081-1/+1
| | | | llvm-svn: 32376
* Incorporate any changes in the successor blocks into the result ofReid Spencer2006-12-081-1/+1
| | | | | | MarkAliveBlocks. llvm-svn: 32375
* add \"aw\",@progbits" to ctors and dtorsRafael Espindola2006-12-081-4/+11
| | | | llvm-svn: 32373
* Change the implementation of statistic to not need destructors at all.Chris Lattner2006-12-081-61/+76
| | | | | | | | | Instead, the stat info is printed when llvm_shutdown() is called. These also don't need static ctors, but getting rid of them is uglier: still investigating. This reduces the number of static dtors in llvm from ~1400 to ~750. llvm-svn: 32372
* During runOnModule() do initialization and finalization.Devang Patel2006-12-081-2/+2
| | | | llvm-svn: 32371
* Reuse code. Directly use runOnFunction().Devang Patel2006-12-081-10/+2
| | | | llvm-svn: 32370
* Implement FunctionPassManager_New::FunctionPassManager_New(ModuleProvider *P)Devang Patel2006-12-081-0/+5
| | | | llvm-svn: 32368
* Move findTiedToSrcOperand to TargetInstrDescriptor.Evan Cheng2006-12-083-16/+14
| | | | llvm-svn: 32366
* fix truncstorei1Rafael Espindola2006-12-081-3/+1
| | | | llvm-svn: 32364
* Hopefully these are the regenerated filesAndrew Lenharth2006-12-083-2184/+1887
| | | | llvm-svn: 32362
* Packed StructuresAndrew Lenharth2006-12-087-17/+64
| | | | llvm-svn: 32361
* Proper fix for PR1037: to determine is a VR is a modref, check 1) whether it isEvan Cheng2006-12-081-2/+4
| | | | | | | tied to another oeprand, 2) whether is is being tied to by another operand. So the destination operand of a two-address MI can be correctly identified. llvm-svn: 32354
OpenPOWER on IntegriCloud