[LLVMdev] Changes in FunctionPassManager constructor

Christophe de Dinechin christophe at taodyne.com
Wed Feb 3 09:25:21 PST 2010


Yes. What is the guideline for code that builds against 2.6 and 2.7?


Thanks
Christophe

On 3 févr. 2010, at 18:14, Garrison Venn wrote:

> So, it looks like I mis-read this. You were referring to backward compatibility.
> 
> Garrison
> 
> On Feb 3, 2010, at 12:11, Garrison Venn wrote:
> 
>> Hi Christophe,
>> 
>> So this is a pain, but we are dealing with a pre-release. Until the 2.7 freeze the source should continue to churn.
>> 
>> Regards
>> 
>> Garrison
>> 
>> On Feb 3, 2010, at 11:34, Christophe de Dinechin wrote:
>> 
>>> What guarantees does LLVM try to provide regarding source code compatibility?
>>> 
>>> Case in point: rev 94686 (http://llvm.org/viewvc/llvm-project?view=rev&revision=94686) breaks any code that creates a JIT. For example, we used to construct a FunctionPassManager with a ModuleProvider, it's now to be done with a Module. I cannot ship source code for my own project that is compatible with both pre-94686 and post-94686.
>>> 
>>> This seems to be relatively frequent in LLVM. My project is not very active, and it's relatively young, but I think this is the third time it hits us. At some point i had to add InitializeNativeTarget(). At some other point, I had to add "context" everywhere. And then there was another issue with globals that eludes me right now. Anyway, I have to assume that preserving source-code compatibility is a non-objective.
>>> 
>>> I could not find any documentation about what the "policy" for C++ is. The check-in for 94686 seems to suggest that the C bindings are somewhat preserved, but doesn't it make sense to provide some guarantees regarding the most frequently used C++ code?
>>> 
>>> Also note that the documentation is unintentionally misleading. It's very confusing for http://llvm.org/docs/tutorial/LangImpl4.html to show "Last modified: $Date: 2007-10-17 11:05:13 -0700 (Wed, 17 Oct 2007) $" at the bottom, as if nothing had changed since then, when the code it displays is actually less than a week old... I guess the source code snippets are updated automagically. As a result, the code shown there as an example will NOT compile on anything but a most recent LLVM, i.e. it will not work if you install LLVM with apt-get or MacPorts. I don't think that's desirable.
>>> 
>>> Opinions?
>>> 
>>> 
>>> Christophe de Dinechin
>>> 
>>> 
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> 
> 





More information about the llvm-dev mailing list