summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Addition of a simple two pass scheduler. This version is currently hacked upJim Laskey2005-09-261-80/+771
| | | | | | | | for testing and will require target machine info to do a proper scheduling. The simple scheduler can be turned on using -sched=simple (defaults to -sched=none) llvm-svn: 23455
* implement a fixme: only select values once, even if used multiple times.Chris Lattner2005-09-261-5/+8
| | | | llvm-svn: 23454
* Remove some dead code. ctor evaluation subsumes empty ctor elimChris Lattner2005-09-261-12/+0
| | | | llvm-svn: 23453
* Add support for alloca, implementing ctor-list-opt.ll:CTOR6Chris Lattner2005-09-261-17/+48
| | | | llvm-svn: 23452
* Testcase that uses an allocaChris Lattner2005-09-261-1/+14
| | | | llvm-svn: 23451
* Add a debug printout, fix a crash on kc++Chris Lattner2005-09-261-1/+6
| | | | llvm-svn: 23450
* Implement loads/stores through GEP's of globals. This implementsChris Lattner2005-09-261-6/+98
| | | | | | ctor-list-opt.ll:CTOR5. llvm-svn: 23449
* add another case, this one that uses getelementptr instructionsChris Lattner2005-09-261-1/+13
| | | | llvm-svn: 23448
* Replace TraverseGEPInitializer with ConstantFoldLoadThroughGEPConstantExprChris Lattner2005-09-261-17/+5
| | | | llvm-svn: 23447
* Eliminate GetGEPGlobalInitializer in favor of the more powerfulChris Lattner2005-09-261-27/+1
| | | | | | ConstantFoldLoadThroughGEPConstantExpr function in the utils lib. llvm-svn: 23446
* Factor the GetGEPGlobalInitializer out of this pass and into Transforms/UtilsChris Lattner2005-09-261-44/+2
| | | | | | as ConstantFoldLoadThroughGEPConstantExpr. llvm-svn: 23445
* Move the ConstantFoldLoadThroughGEPConstantExpr function out of the InstCombineChris Lattner2005-09-261-1/+45
| | | | | | pass. llvm-svn: 23444
* add a new functionChris Lattner2005-09-261-0/+5
| | | | llvm-svn: 23443
* add a commentChris Lattner2005-09-261-0/+3
| | | | llvm-svn: 23442
* Add support for getelementptr, load, and correctly reject volatile stores.Chris Lattner2005-09-261-0/+29
| | | | llvm-svn: 23441
* add a test for loadChris Lattner2005-09-261-1/+10
| | | | llvm-svn: 23440
* Add support for br/brcond/switch and phiChris Lattner2005-09-261-3/+47
| | | | llvm-svn: 23439
* add another testcase with simple control flowChris Lattner2005-09-261-1/+15
| | | | llvm-svn: 23438
* Add a simple interpreter to this code, allowing us to statically evaluateChris Lattner2005-09-261-4/+110
| | | | | | global ctors that are simple enough. This implements ctor-list-opt.ll:CTOR2. llvm-svn: 23437
* make this harder: put some code into itChris Lattner2005-09-261-2/+19
| | | | llvm-svn: 23436
* factor some code into a InstallGlobalCtors method, add comments. No ↵Chris Lattner2005-09-261-35/+52
| | | | | | functionality change. llvm-svn: 23435
* Make the global opt optimizer work on modules with a null terminator, byChris Lattner2005-09-261-8/+13
| | | | | | accepting the null even with a non-65535 init prio llvm-svn: 23434
* Factor this code out into a few methods.Chris Lattner2005-09-261-33/+190
| | | | | | | | | | | | | Implement the start of global ctor optimization. It is currently smart enough to remove the global ctor for cases like this: struct foo { foo() {} } x; ... saving a bit of startup time for the program. llvm-svn: 23433
* new testcase for static ctor list optimizationsChris Lattner2005-09-261-0/+14
| | | | llvm-svn: 23432
* Fix VC++ build errors.Jeff Cohen2005-09-252-2/+4
| | | | llvm-svn: 23431
* Fix some logic I broke that caused a regression onChris Lattner2005-09-251-3/+5
| | | | | | SimplifyLibCalls/2005-05-20-sprintf-crash.ll llvm-svn: 23430
* Move MaskedValueIsZero up.Chris Lattner2005-09-241-77/+146
| | | | | | Match a bunch of idioms for sign extensions, implementing InstCombine/signext.ll llvm-svn: 23428
* All of these should turn into sign extends (e.g. extsh/extsb on PPC)Chris Lattner2005-09-241-0/+43
| | | | llvm-svn: 23427
* Add long-overdue helpers for getting constants with known upper bitsChris Lattner2005-09-241-0/+14
| | | | llvm-svn: 23426
* Simplify this code a bit by relying on recursive simplification. SupportChris Lattner2005-09-241-51/+43
| | | | | | | | sprintf("%s", P)'s that have uses. s/hasNUses(0)/use_empty()/ llvm-svn: 23425
* Enhance this to check for a crash, add a case that crashes simplifylibcalls,Chris Lattner2005-09-241-2/+6
| | | | | | and add a case that has uses. llvm-svn: 23424
* new testcase that crashes the CFEChris Lattner2005-09-241-0/+33
| | | | llvm-svn: 23423
* new testcase for PR630Chris Lattner2005-09-241-0/+9
| | | | llvm-svn: 23422
* Add support for a marker byte that indicates that we shouldn't add the userChris Lattner2005-09-241-7/+12
| | | | | | prefix to a symbol name llvm-svn: 23421
* change proto slightlyChris Lattner2005-09-241-1/+2
| | | | llvm-svn: 23420
* memoize translationsChris Lattner2005-09-241-0/+11
| | | | llvm-svn: 23419
* Teach the dag isel generator how to construct arbitrary immediates. TheChris Lattner2005-09-241-1/+6
| | | | | | generated isel now tries li then lis, then lis+ori. llvm-svn: 23418
* Teach the DAG isel generator to emit code that creates nodes.Chris Lattner2005-09-242-18/+110
| | | | | | Fix a few corner cases parsing things like (i32 imm:$foo) llvm-svn: 23417
* Emit better code (no more copies for var references), and support DAG patternsChris Lattner2005-09-232-8/+25
| | | | | | (e.g. things like rotates). llvm-svn: 23416
* Fix a fixme by passing around SDOperand's instead of SDNode*'sChris Lattner2005-09-231-15/+14
| | | | llvm-svn: 23415
* Emit code that matches the incoming DAG pattern and checks predicates.Chris Lattner2005-09-232-4/+64
| | | | | | | | | This does not check that types match yet, but PPC only has one integer type ;-). This also doesn't have the code to build the resultant dag. llvm-svn: 23414
* emit information about the order patterns are to be matched.Chris Lattner2005-09-232-1/+60
| | | | llvm-svn: 23413
* start filling in the switch stmtChris Lattner2005-09-232-2/+19
| | | | llvm-svn: 23412
* remove some debugging codeChris Lattner2005-09-231-1/+0
| | | | llvm-svn: 23411
* Fold two consequtive branches that share a common destination between them.Chris Lattner2005-09-231-33/+119
| | | | | | | This implements SimplifyCFG/branch-fold.ll, and is useful on ?:/min/max heavy code llvm-svn: 23410
* new testcaseChris Lattner2005-09-231-0/+12
| | | | llvm-svn: 23409
* simplify some logic furtherChris Lattner2005-09-231-6/+1
| | | | llvm-svn: 23408
* pull a bunch of logic out of SimplifyCFG into a helper fnChris Lattner2005-09-231-112/+112
| | | | llvm-svn: 23407
* speed up Archive::isBytecodeArchive in the case when the archive doesn't haveChris Lattner2005-09-231-18/+24
| | | | | | | an llvm-ranlib symtab. This speeds up gccld -native on an almost empty .o file from 1.63s to 0.18s. llvm-svn: 23406
* Speed up isBytecodeLPath from 20s to .01s in common cases. This makes -nativeChris Lattner2005-09-231-17/+11
| | | | | | | not completely painful to use. Once we decide a directory has a bytecode library, we know it this function returns true, no need to scan entire directories. llvm-svn: 23405
OpenPOWER on IntegriCloud