summaryrefslogtreecommitdiffstats
path: root/llvm/tools/bugpoint/Miscompilation.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* This started as a small change, I swear. Unfortunately, lots of things call ↵Owen Anderson2009-07-091-2/+2
| | | | | | the [I|F]CmpInst constructors. Who knew!? llvm-svn: 75200
* Switch GlobalVariable ctors to a sane API, where *either* a context or a ↵Owen Anderson2009-07-081-6/+5
| | | | | | module is required. llvm-svn: 75025
* Push LLVMContext through GlobalVariables and IRBuilder.Owen Anderson2009-07-081-2/+4
| | | | llvm-svn: 74985
* Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson2009-07-011-1/+1
| | | | | | | | | | LLVMContext through a lot of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools. Patches for Clang and LLVM-GCC to follow. llvm-svn: 74614
* Use CloneModule's ValueMap in more places, instead of lookingDan Gohman2009-04-221-12/+23
| | | | | | up functions by name. llvm-svn: 69805
* Generalize bugpoint's concept of a "safe" backend, and add optionsDan Gohman2008-12-081-8/+10
| | | | | | | | | | | | | | to allow the "safe" backend to be run with a different path, and/or with different command-line options. This enables the following use cases: - bugpoint llc against an llc command from a different build - bugpoint llc against the same llc with different command-line options - and more... Also, document the existing "custom" interpreter options. llvm-svn: 60681
* Reformat this message to fit in 80 cols.Dan Gohman2008-07-141-4/+4
| | | | llvm-svn: 53561
* Fix a bunch of 80col violations that arose from the Create API change. Tweak ↵Gabor Greif2008-05-151-7/+11
| | | | | | makefile targets to find these better. llvm-svn: 51143
* Revert r49614. As Dan pointed out, some of these aren't correct.Owen Anderson2008-04-141-1/+1
| | | | llvm-svn: 49657
* Replace calls of the form V1->setName(V2->getName()) with V1->takeName(V2), Owen Anderson2008-04-131-1/+1
| | | | | | which is significantly more efficient. llvm-svn: 49614
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-28/+28
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* -fPIC is required on x86-64 when building shared objects.Torok Edwin2008-04-061-1/+1
| | | | llvm-svn: 49274
* remove attributions from tools.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45421
* Change the PointerType api for creating pointer types. The old functionality ↵Christopher Lamb2007-12-171-3/+3
| | | | | | of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. llvm-svn: 45082
* Rather than having special rules like "intrinsics cannotDuncan Sands2007-12-031-1/+1
| | | | | | | | | throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). llvm-svn: 44544
* Allow the block extractor take to take a list of basic blocks to not extractNick Lewycky2007-11-141-1/+1
| | | | | | | | | from a file containing Function/BasicBlock pairings. This is not safe against anonymous or abnormally-named Funcs or BBs. Make bugpoint use this interface to pass the BBs list to the child bugpoint. llvm-svn: 44101
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-5/+5
| | | | | | | | indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
* Pretty straightforward replacement of "bytecode" by "bitcode"Gabor Greif2007-07-041-25/+25
| | | | | | performed on tools/ first, in order not to cause lethal damage llvm-svn: 37877
* remove use of deprecated apisChris Lattner2007-02-191-2/+1
| | | | llvm-svn: 34418
* eliminate use of vector-related ctorsChris Lattner2007-02-131-4/+7
| | | | llvm-svn: 34226
* For PR411:Reid Spencer2007-02-051-2/+2
| | | | | | | | Adjust to changes in Module interface: getMainFunction() -> getFunction("main") getNamedFunction(X) -> getFunction(X) llvm-svn: 33922
* For PR411:Reid Spencer2007-02-051-4/+7
| | | | | | | | | | This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. llvm-svn: 33918
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-6/+6
| | | | | | confusion with external linkage types. llvm-svn: 33663
* relax typeChris Lattner2007-01-071-1/+1
| | | | llvm-svn: 32990
* For PR950:Reid Spencer2006-12-311-3/+3
| | | | | | Convert signed integer types to signless. llvm-svn: 32790
* For PR950:Reid Spencer2006-12-231-2/+2
| | | | | | | | This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. llvm-svn: 32751
* For PR950:Reid Spencer2006-11-271-3/+3
| | | | | | | | | | The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. llvm-svn: 31931
* Minor style fixes from review.Reid Spencer2006-11-111-3/+2
| | | | llvm-svn: 31685
* Add a -disable-loop-extraction option to bugpoint.Reid Spencer2006-11-111-2/+9
| | | | llvm-svn: 31683
* For PR786:Reid Spencer2006-11-021-1/+1
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* Change DisambiguateGlobalSymbols to not rename asm globals, which breaksChris Lattner2006-09-071-0/+1
| | | | | | bugpoint on leopard. llvm-svn: 30150
* For PR797:Reid Spencer2006-08-231-4/+22
| | | | | | | Final removal of exceptions from lib/System and adjustment of users to accommodate. llvm-svn: 29846
* wrap long lineChris Lattner2006-05-041-1/+2
| | | | llvm-svn: 28113
* Fix printing of the instructions.Chris Lattner2005-12-141-1/+1
| | | | llvm-svn: 24714
* This solves the problem of the CBE renaming symbols that start with . but ↵Andrew Lenharth2005-12-061-0/+2
| | | | | | the assembly side still trying to reference them by their old names. Should be safe untill we hit a language front end that lets you specify such a name. llvm-svn: 24626
* When a function takes a variable number of pointer arguments, with a zeroJeff Cohen2005-10-231-1/+1
| | | | | | | | | | | | | pointer marking the end of the list, the zero *must* be cast to the pointer type. An un-cast zero is a 32-bit int, and at least on x86_64, gcc will not extend the zero to 64 bits, thus allowing the upper 32 bits to be random junk. The new END_WITH_NULL macro may be used to annotate a such a function so that GCC (version 4 or newer) will detect the use of un-casted zero at compile time. llvm-svn: 23888
* If the user interrupts bugpoint, don't extract loopsChris Lattner2005-08-021-2/+6
| | | | llvm-svn: 22603
* When the user hits ctrl-c, bugpoint should attempt to stop reduction asChris Lattner2005-08-021-8/+13
| | | | | | | quickly as possible and output what it has so far. If they hit it twice, bugpoint is killed. llvm-svn: 22579
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-271-6/+6
| | | | llvm-svn: 22523
* Fix PR576.Chris Lattner2005-07-121-21/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of emitting a JIT stub that looks like this: internal void %l1_main_entry_2E_ce_wrapper(int) { header: %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) ) ; <sbyte*> [#uses=1] %resolverCast = cast sbyte* %resolver to void (int)* ; <void (int)*> [#uses=1] call void %resolverCast( int %0 ) ret void } Emit one that looks like this: internal void %l1_main_entry_2E_ce_wrapper(int) { Entry: %fpcache = load void (int)** %l1_main_entry_2E_ce.fpcache ; <void (int)*> [#uses=2] %isNull = seteq void (int)* %fpcache, null ; <bool> [#uses=1] br bool %isNull, label %lookupfp, label %usecache usecache: ; preds = %lookupfp, %Entry %fp = phi void (int)* [ %resolverCast, %lookupfp ], [ %fpcache, %Entry ] ; <void (int)*> [#uses=1] call void %fp( int %0 ) ret void lookupfp: ; preds = %Entry %resolver = call sbyte* %getPointerToNamedFunction( sbyte* getelementptr ([20 x sbyte]* %l1_main_entry_2E_ce_name, int 0, int 0) ) ; <sbyte*> [#uses=1] %resolverCast = cast sbyte* %resolver to void (int)* ; <void (int)*> [#uses=2] store void (int)* %resolverCast, void (int)** %l1_main_entry_2E_ce.fpcache br label %usecache } This makes the JIT debugger *MUCH* faster on large programs, as getPointerToNamedFunction takes time linear with the size of the program, and before we would call it every time a function in the text module was called from the safe module (ouch!). llvm-svn: 22387
* Final Changes For PR495:Reid Spencer2005-07-081-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | This chagne just renames some sys::Path methods to ensure they are not misused. The Path documentation now divides methods into two dimensions: Path/Disk and accessor/mutator. Path accessors and mutators only operate on the Path object itself without making any disk accesses. Disk accessors and mutators will also access or modify the file system. Because of the potentially destructive nature of disk mutators, it was decided that all such methods should end in the work "Disk" to ensure the user recognizes that the change will occur on the file system. This patch makes that change. The method name changes are: makeReadable -> makeReadableOnDisk makeWriteable -> makeWriteableOnDisk makeExecutable -> makeExecutableOnDisk setStatusInfo -> setStatusInfoOnDisk createDirectory -> createDirectoryOnDisk createFile -> createFileOnDisk createTemporaryFile -> createTemporaryFileOnDisk destroy -> eraseFromDisk rename -> renamePathOnDisk These changes pass the Linux Deja Gnu tests. llvm-svn: 22354
* For PR495:Reid Spencer2005-07-071-5/+5
| | | | | | | | | | | | | | | | | | | | | Get rid of the difference between file paths and directory paths. The Path class now simply stores a path that can refer to either a file or a directory. This required various changes in the implementation and interface of the class with the corresponding impact to its users. Doxygen comments were also updated to reflect these changes. Interface changes are: appendDirectory -> appendComponent appendFile -> appendComponent elideDirectory -> eraseComponent elideFile -> eraseComponent elideSuffix -> eraseSuffix renameFile -> rename setDirectory -> set setFile -> set Changes pass Dejagnu and llvm-test/SingleSource tests. llvm-svn: 22349
* If loopextract breaks the program provide output so that we can repro theChris Lattner2005-05-081-1/+9
| | | | | | problem. llvm-svn: 21790
* Eliminate tabs and trailing spacesJeff Cohen2005-04-221-1/+1
| | | | llvm-svn: 21441
* Remove trailing whitespaceMisha Brukman2005-04-221-23/+23
| | | | llvm-svn: 21428
* Replace more a*'s with arg_*'s, thanks to Gabor Greif!Chris Lattner2005-03-151-1/+1
| | | | llvm-svn: 20615
* Use arg_iterator and arg_begin and arg_end functions.Alkis Evlogimenos2005-03-151-4/+5
| | | | llvm-svn: 20608
* Fix spelling, patch contributed by Gabor Greif!Chris Lattner2005-02-271-1/+1
| | | | llvm-svn: 20343
* Improve output precision.Chris Lattner2005-01-151-2/+12
| | | | llvm-svn: 19564
* For PR351:Reid Spencer2004-12-161-5/+5
| | | | | | | | | | | * removeFile() -> sys::Path::destroyFile() * remove extraneous toString() calls * convert local variables representing path names from std::string to sys::Path * Use sys::Path objects with FileRemove instead of std::string * Use sys::Path methods for construction of path names llvm-svn: 19001
OpenPOWER on IntegriCloud